Git管理本地代码(一)【转】

转自:http://blog.csdn.net/weihan1314/article/details/8677800

版权声明:本文为博主原创文章,未经博主允许不得转载。

 

目录(?)[+]

 

安装Git

 

[plain] view plain copy

 

  1. $sudo apt-get install git  
  2. $sudo apt-get install git-core  

更新Git

 

 

 

 

[plain] view plain copy

 

  1. $git clone git://git.kernel.org/pub/scm/git/git.git  

安装好git后在终端输入git 命令会显示git命令提示,证明git已经安装成功。

 

 

 

初始化代码仓库

 

[plain] view plain copy

 

  1. $mkdir android4.2  
  2. $cd android4.2  
  3. $git init  

 

 

 

git init 和git --bare init 的具体区别参考:http://blog.haohtml.com/archives/12265 

 

提示: Initialized empty Git repository in /data/Downloads/Git/android4.2/.git/证明git仓库(repository)创建成功

配置config文件(全局)

 

[plain] view plain copy

 

  1. $cd .git  
  2. $vim config  

该配置文件的原始内容为:

 

 

 

 

[plain] view plain copy

 

  1. [core]  
  2.         repositoryformatversion = 0  
  3.         filemode = true  
  4.         bare = false  
  5.         logallrefupdates = true  

在该配置文件中加入以下内容:

 

 

 

 

[plain] view plain copy

 

  1. [receive]  
  2. denyCurrentBranch = ignore  

加入该配置的目的是:允许使用git push 提交代码到服务器,否则会出现以下异常:

 

 

 

 

remote: error: refusing to update checked out branch: refs/heads/master

remote: error: By default, updating the current branch in a non-bare repository

remote: error: is denied, because it will make the index and work tree inconsistent

remote: error: with what you pushed, and will require 'git reset --hard' to match

remote: error: the work tree to HEAD.

remote: error:

remote: error: You can set 'receive.denyCurrentBranch' configuration variable to

remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into

remote: error: its current branch; however, this is not recommended unless you

remote: error: arranged to update its work tree to match what you pushed in some

remote: error: other way.

remote: error:

remote: error: To squelch this message and still keep the default behaviour, set

remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.

To git@192.168.1.X:/var/git.server/.../web

! [remote rejected] master -> master (branch is currently checked out)

error: failed to push some refs to 'git@192.168.1.X:/var/git.server/.../web'

在代码仓库创建一个说明文档(该文档可以随便创建)

 

[plain] view plain copy

 

  1. $touch spec.txt  

备注:如果初始的代码仓库为空,git push origin master提交代码的时候会出现以下异常:

 

 

 

error: src refspec master does not match any.
error: failed to push some refs to '/data/Downloads/Git/android4.2/.git
因此我们需要在初始化代码仓库之后,在仓库中创建一个文件:

实例:

 

[plain] view plain copy

 

  1. $touch spec.txt  
  2. $git add spec.txt  
  3. $git commit-a -m "first commit"  
  4. $git push  

此时,基本的代码仓库已经创建完成。本地代码仓库的Git库为:/data/Downloads/Git/android4.2/.git

 

 

 

同步代码

创建myprojects目录,同步代码

 

[plain] view plain copy

 

  1. $mkdir Download/myprojects  
  2. $git clone /data/Downloads/Git/android4.2/.git  

修改文件

[plain] view plain copy

 

  1. $touch test.txt  

(备注:在这里可以编写和更改文件,本文只是讲解Git库的使用,所以只是简单的创建了一个文件)

 

 

 

使用git diff 和 git status 命令可以查看代码当前的状态

提交代码

 

[plain] view plain copy

 

  1. $git add test.text  
  2. $git commit -a -m "second commit"  
  3. $git push origin master  

查看log信息

 

 

 

 

[plain] view plain copy

 

  1. $git log  

 

 

 

查看代码仓库中代码是否提交成功

进入代码仓库目录,查看代码提交log

 

[plain] view plain copy

 

  1. $cd android4.2  
  2. $git log  

能够查看代码提交的log信息,但是却无法看到我们提交的代码,怎么回事呢?

 

 

 

如果使用了git init初始化,则远程仓库的目录下,也包含work tree,当本地仓库向远程仓库push时, 如果远程仓库正在push的分支上(如果当时不在push的分支,就没有问题), 那么push后的结果不会反应在work tree上,  也即在远程仓库的目录下对应的文件还是之前的内容。

使用以下命令即可查看提交的内容
$git reset --hard

回退到当前最新(本地最新)提交的代码信息

时间: 2024-09-25 11:33:49

Git管理本地代码(一)【转】的相关文章

Git 管理本地代码【转】

转自:http://www.cnblogs.com/JessonChan/archive/2011/03/16/1986570.html   以前用SVN,不过没有用出感情来:倒是用出不少怨恨:由于没有很好的备份(我当然要负责的),我所有的代码全没有了~就连我写的锐捷认证的Birl的源码也是我最后从以前的地方重新组合的. 所以开始用Git来进行版本控制,可惜,新手. 下载了一本<git_tutorial.pdf>来自己慢慢学习.小小成. 我一般习惯用push,不喜欢pull,人懒,没有办法.所

【git学习】git管理本地项目

(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景        最近打算使用git管理本地的项目,网上的资料很多,但是很杂,这这整理一下. 2.git使用 (1)初始化 新建一个git文件夹,cd进去,建立代码仓库 git init            进入该文件夹,将文件显示隐藏可见,里面会生成.git文件,如下图 将需要被管理的项目放到这个git文件夹下,或者从服务器clone需要的项目.我将testDraft放了进去 这时候输入以下命令,查

使用 Git 管理源代码

     原链接地址:https://www.ibm.com/developerworks/cn/linux/l-git/  在现代软件开发项目中,要成为一个有效的软件开发人员,我们必须能够与其他项目贡献者并行进行开发.源代码管理(SCM)系统不是什么新思想.为了编写一些能够更快速.简单地开发以后软件项目的软件,已经进行了很多尝试.最新的源代码解决方案都包含了版本控制系统,它可以对源代码的修改进行回滚,从而将有害的代码剔除出项目之外,或者简单地跟踪哪些人修改了代码的哪些行的内容.版本控制系统试图

git管理冲突解决方案…………

问题描述 git管理冲突解决方案---- 如果你注意到了我的提问,说明你已经是git管理高手,或者你曾经也遇到过这样的问题: git管理下的项目merge之后冲突,显示包内容方式打开.xocdeproj文件手动解决有<<<<<< 标示的冲突问题后,还是打不开,终端显示也还是打不开,接下来我怎么是好?求解决方案! 解决方案 用编辑器打开.xocdeproj看看有什么不对的地方呢 解决方案二: 用记事本,打开xocdeproj文件,手工修改<<<<&

《Puppet实战手册》——1.4 利用Git管理配置清单

1.4 利用Git管理配置清单 把Puppet配置清单存放在版本控制系统Git或Subversion中管理(推荐Git),所有Puppet管理的机器都从仓库取出配置,这是一个非常好的想法.它有以下几个优点. 可以取消对配置清单的更改并回滚至以前任意一个版本. 可以使用新的分支(branch)来测试新功能. 如果有多人需要修改配置清单,可以分别独立在自己的工作副本上进行,然后再合并所有的修改. 可以使用git log功能查看谁在什么时候做了什么修改. 准备工作 本节将导入现有的清单文件到Git仓库

【git学习三】git基础之git管理远程仓库

1.背景                git管理远程仓库,本文以github为例. 2.管理远程仓库                 1.本地ssh认证,在github建立一个repo叫做ospaf-GetWordFre            2.添加远程仓库,可以用git remote 命令实现,o是仓库名,可以用git remote -v查看 git remote add o git://github.com/jimenbian/ospaf-GetWordFre.git      3.接着

Git系列(七):使用Git管理二进制大对象

通过这系列的前六篇文章,我们已经学会使用 Git 来对文本文件进行版本控制的管理.我们不禁要问,还有二进制文件呢,也可进行进行版本控制吗?答案是肯定的,Git 已经有了可以处理像多媒体文件这样的二进制大对象块(blob)的扩展.因此,今天我们会学习使用 Git 来管理所谓的二进制资产. 似乎大家都认可的事就是 Git 对于大的二进制对象文件支持得不好.要记住,二进制大对象与大文本文件是不同的.虽然 Git 对大型的文本文件版本控制毫无问题,但是对于不透明的二进制文件起不了多大作用,只能把它当作一

优秀的GIT管理工具SourceTree下载

SourceTree是一个比较优秀的Git代码管理工具,能够替代大部分的命令行工作,在合并代码,查看diff的时候都非常方便,能大大提高生产效率, 基本国外的网站下载非常缓慢,大部分时候都是不可下载状态,本文主要提高SourceTree的下载加速. 2.6.3 Mac版下载地址: http://p.tb.cn/rmsportal_9573_Sourcetree_2.6.3a.zip

Gitblit 0.8.2发布 Java的Git管理工具

Gitblit 是一个纯 Java 库用来管理.查看和处理 Git 资料库.相当于 Git 的 Java 管理工具.它设计的主要目的是在主机集中软件库中作为一个小型工作组的工具. Gitblit 0.8.2此版本修复了一个bug,升级users.properties users.conf. 下载地址: gitblit-0.8.2.war gitblit-0.8.2.zip