天天看点

Git常用命令

如果远程服务器也需要还原到d756f627fe568f4d8bcf1852ba60557eeab477a5版本,则继续执行

<a></a>

git merge应该大家都比较熟悉,就是把branch merge进来;

git rebase的意思其实也是蛮简单的,字面意思rebase就是把branch的根基替换一下,有点像嫁接。

网上一直流传的三张图,很经典。

before merge/rebase

after git merge master

after git rebase master

其实,这里rebase的线性,是指在当前branch上是线性的,其中带’ (撇号)的commit并没有被同步到master上,仍然在branch上。

下面的图更好一点:

另外两个相关的命令是: git pull和 git pull –rebase。

这两个的区别在于前者是git fetch + git merge,后者是git fetch + git rebase。

什么时候使用merge,什么时候用rebase呢?

里面有详细的解释:

翻译一下:

当你不小心,写错了提交的注视/信息,该如何处理呢。理论上,scm是不应该修改历史的信息的,提交的注释也是。不过在git中,其commit提供了一个–amend参数,可以修改最后一次提交的信息.但是如果你已经push过了,那么其历史最后一次,永远也不能修改了。

下面的命令只能对最后一次的提交进行修改:

对于历史提交,得使用rebase了

表示要修改当前版本的倒数第三次状态。

这个命令出来之后,会出来三行东东:

pick:*

如果你要修改哪个,就把那行的pick改成edit,然后退出。

这时通过git log你可以发现,git的最后一次提交已经变成你选的那个了,这时再使用:

来对commit进行修改。

修改完了之后,要回来对不对?

使用下面的命令:

ok,一切都搞定了。