git小贴士:推送本地分支到异名远程分支

今天学习了一个小技巧,如何把改动从本地分支推送到远程仓库的一个异名分支: local_branch:remote_branch是一个所谓的,它的完整版是: 把本地分支同步到远程同名分支: 把本地分支同步到远程异名分支: 如果省略,则删除远程分支: 如果省略和,则将所有本地分支的改动同步到远程的同名分支: :也可以省略,上面的命令和git push orgin等效。 non-fast-forward 默认情况下push命令只使用fast-forward操作,如果在前面指定+,可以让push使用non-fast-forward操作,这跟在push后面指定--force参数是一个道理 *参考: git push --help

July 11, 2014

Linus Torvalds在Google Talk上做的git演讲

这是2007年的演讲,但是仍然值得一看。 git一直有对初学者不友好的名声,主持人一开始就调侃了一句: It was especially designed to make you feel less intelligent than you think you were. git最初被设计用来管理Linux内核,而Linus作为内核负责人,当然是以方便自己使用的角度出发来设计git。 Linux说出了自己对版本管理的三点要求: If you are not distributed, you are not worth using. If you perform badly, you are not worth using. If you can not guarantee that the stuff I put into the SCM come the exactly the same. You are not worth using. 为什么像CVS这些集中式的版本管理工具无法用来管理Linux内核呢?Linus给出了答案,主要是因为没有去中心化。...

June 19, 2014

git同步被amend过的远端分支

git允许我们修改一个commit的历史,并可以将修改后的历史push到远程仓库: 这种情况下,当另一个人从远程仓库pull的时候,就会出现冲突。如果你不想解决冲突,可以用万能的reset命令: 上面的命令用远程的改动来覆盖本地的改动,如果你想保存本地的改动,可以先把本地的改动stash起来。

April 20, 2014