用git管理源码

原创文章,转载请注明出处.转载自: Li Haifeng's Blog
本文链接地址: 用git管理源码

git管理源码,好处自不必说。学习git参考的是《pro git》。
该书的豆瓣链接:http://book.douban.com/subject/3420144/

关于文件的修改:

如果,自己想添加新的文件。最好是,自己建立一个分支:
git branch new-branch    //建立新的分支
git checkout new-branch //切换到新的分支下工作
这时候,可以添加或者修改文件。

注意,这个时候,该分支下新添加的文件与master分支是没有一点关系的。

另外,说一下git revert ,git reset –hard和 –soft的区别

git reset –mixed id ,是将git的HEAD变了(也就是提交记录变了),但文件并没有改变,(也就是working tree并没有改变)。
git reset –soft id. 实际上,是git reset –mixed id 后,又做了一次git add
git reset –herd id.是将git的HEAD变了,文件也变了。

git revert与git reset最大的不同是,git revert 仅仅是撤销某次提交。
比如git revert HEAD~1  ,那么会撤销倒数第二次的提交结果。而倒数第一次的提交记录,仍然在。
如果git reset –hard HEAD~1,那么,commit退回到倒数第三次的状态中。
总体来讲,还是git revert 好啊,雁过留声嘛。

其实,通过git reset –soft id的方法,可以将原来多次的git提交记录合并为一个。

两个分支的合并:(分支也就是版本的意思)
git pull . 分支1,  将分支1的变化提交到分支2。
在分支合并部分,不要用git merge 和 git push。容易出错。
另外,还有一种分支合并的方法是rebase。这种方法,更符合思维。
git checkout A1
git rebase master
过程是,找到将A1和master的共同commit点。A1 把自分叉以来的所有补丁都达到master上。相当于:

git checkout master
git pull . A1
—-or—-
git checkout master
git merge A1


关于查看git 记录。

git whatchanged 可以查看最近两次提交记录,以及文件的变更。
git log 可以查看所有的git提交记录。另外,一些参数,也是很有用,比如 -p -N -stat
git diff 版本1 版本2 可以查看两个分支的差异。

主要,就是这些了。以后再有什么新的需求,一并写过来。

git add -i 竟然还有交互模式。很方便,不过自己仅仅使用了其中的一条。

本地-服务器查看:
omycle@omycle-desktop:/home/sda4/work/neo$ git remote show origin
* remote origin
Fetch URL: git://211.69.198.249/neo.git
Push  URL: git://211.69.198.249/neo.git
HEAD branch: master
Remote branch:
master tracked
Local branch configured for ‘git pull':               //如果git pull 缺省状态是用master分支
master merges with remote master
Local ref configured for ‘git push':                  //如果git push 缺省状态是到master分支
master pushes to master (up to date)
如果距离上一次clone 有一定时间了,那么服务器一定是做过了不少更新工作,怎样将新的更新同时同步到本地呢?
git fetch origin
为啥用origin呢,因为,我们在clone的时候,建立默认的远程仓库名的别名 origin/master,就表示远程仓库上的master分支。因此,就用git fetch origin.意思就是,让存放在本地的origin/master分支与服务器同步。

关于diff:

git diff    要查看尚未暂存的文件(还没有git add 之前)更新了哪些部分,不加参数直接输入 。
git diff -cached  已经暂存文件更新了那些部分,也就是git add 之后,git commit之前。

其实,要是看文件具体更改详情的话,用git log,也可以。
git log -p -n,n是看最近的n次记录。

建立git服务器:

建立git服务器,其实很简单,特别是对于项目成员比较少的情况下。
比如,在本地有一个test目录,里面是要共享的项目。那么:
git clone –bare test.git test
这样,就建立了test.git了。其他成员就可以共享了。
例如:
对于我来说,用omycle@192.168.227.101就可以通过SSH的方式远程git clone 项目了。
git clone omycle@192.168.227.101:~/test.git

步骤真是简单啊。

当然,麻烦的步骤是,在一个新的目录里面git初始化后,运行:
git remote add origit omycle@192.168.227.101:~/test.git
git fetch origin
git pull origin master
这样,就可以了。

From Li Haifeng's Blog, post 用git管理源码

Post Footer automatically generated by wp-posturl plugin for wordpress.

分享到: