感谢这位朋友提供的资料.正好学习到.
转自:http://w.hudong.com/e1718e73ec09410ab56916307124f725.html
今日感言:感谢网络,更感谢大家的分享,让每个人都有机会融入知识的海洋~
关于git,之前也查阅了不少资料,迷迷糊糊的使用着一些命令。今天又时间把它整理一下,一方面强化自身的印象,另一方面,如果能对其他人有所帮助又能恰巧被看到的话,也算是一件快乐的事情。
1.建立版本库
方法一:mkdir myDir; cd myDir; git init(这种方式很少使用,后续讨论建立在方式二基础上)
方法二:git clone $path/.git ($path指源版本库的路径)
注意,clone的是源版本库处于的当前分支状态。
2.取得分支
git branch -r (查看源版本库的分支信息,分支名都以origin/开头)
origin/HEAD -> origin/yjf
origin/master
origin/yjf
git checkout -t origin/master -b master 这样就新建了一个本地分支master来跟踪远程分支origin/master 。
如果在该分支上修改上传(push),会直接上传到源版本库的origin/master 上。
3.创建分支
git branch mybranch;git checkout mybranch创建并且换到新创建的分支上。
或者git checkout -b mybranch即可完成同样的功能。
注意前面clone出来的默认分支以及2中介绍的方法创建的分支都是远程源版本库中的索引。 而3中建立的分支因为没有明确指定跟踪的远程版本库分支,无法直接push到远程分支,只可以本地commit。
怎么解决这个问题呢,分支合并。
4. 分支合并
git checkout master; git merge mybranch; //如此把开发分支上的东西合并到master分支上。但如果merge报错呢?
手动编辑出错的文件,并git add,git commit
5. 发布修改
所谓发布,就是指把代码提交给源版本库,而不是本地(本地叫交付,commit)
git pull; 有merge的功能,如出错,做类似4中处理。
git push;
其它:
git add 与svn add内容不一样,svn add仅为增加文件时使用,而git add 为文件内容变化时使用。
git-reset --soft HEAD 逆转上次提交的版本进度
git-reset --hard 7182ae4912487692d4f91ded1e74d99e0fc12e49 强行逆转到索引指定的版本,--hard选项要慎重使用, 有事可能破坏正常文件。
git-revert 也可撤销上次对版本库的提交,但这本身也会产生一个commit,用得多了会使log看起来不那么干净。