关于回滚和分支:
在使用git的过程中,难免出现新提交的版本有些问题,需要换回以前的版本的情况,这时,我们首先用git reflog查看版本信息:
$ git reflog
然后一系列的HEAD会列出:
0a50072 HEAD@{0}: checkout: moving from master to develop
0a50072 HEAD@{1}: checkout: moving from testing to master
0a50072 HEAD@{2}: checkout: moving from master to testing
0a50072 HEAD@{3}: merge origin/master: Fast-forward
ec51f11 HEAD@{4}: commit: add "initial code" on screen
57f3086 HEAD@{5}: clone:
选择想要回滚到的版本,假如回滚至commit: add "initial code" on screen时期的版本:
$ git reset --hard HEAD@{4}
就可以了,此时查看git log,就是以前的版本了。
当然,我们在更新自己的代码时,可以采用分支,来避免这种需要回滚的情况,在与远端origin分支合并之前,可以先新建一个分支,假如命名为develop:
$ git branch develop
此时,用git branch命令查看本地分支:
$ git branch
会显示两个分支,*表示当前工作的分支:
develop
* master
用git checkout develop可以将工作分支切换成develop,再git branch查看下:
$ git checkout develop
*号就在develop前了:
* develop
master
这样,就可以将远端origin分支合并进入master里,而自己依旧继续在develop分支里工作。
git am patch打不上时,可以先用git am --abort清除掉之前的残留,然后使用git am --reject先打上部分patch,然后再根据自动生成的.rej文件,手动修改。