由于篇幅有限,我们接着把剩下的问题汇总一下。这都是实在的干货,我真是太有心了,也不知道有没有人点赞😊。废话不多说,我们直入正题,从七开始吧~

七、未监视的工作树文件,如何处理?

1
error: Untracked working tree file 'gulpfile.js' would be overwritten by merge.  Aborting

解决方案如下:

1
2
3
4
git reset --hard HEAD
#删除untracked文件,参数fd是强制并删除目录
git clean -fd
git pull

八、代码冲突了,以谁的版本为准?

1
2
Your local changes to the following files would be overwritten by merge
error: Your local changes to the following files would be overwritten by merge

如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:

1
2
3
git stash
git pull
git stash pop

然后可以使用如下命令:

1
git diff -w +文件名

反过来,如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下:

1
2
git reset --hard
git pull

其中git reset是针对版本,如果想针对文件回退本地修改,使用

1
untracked working tree file

九、git放弃本地修改,强制更新

1
2
3
git fetch --all
git reset --hard origin/master
git fetch

这里需要注意的是:git fetch只是下载远程的库的内容,不做任何的合并,git reset 把HEAD指向刚刚下载的最新的版本。

十、取消本地修改

1
git checkout -- README.md

此操作将丢弃本地修改

十一、取消本地暂存文件操作,即取消 git add

1
git reset HEAD README.md

git

十二、修改上一次commit 提交信息

1
git commit -- amend

git

程序进入了vim模式(如果对vim编辑器不太熟悉,猛戳这里!《熟练使用vim编辑器》),编辑之后:wq!保存并退出,接下来我们来查看commit提交日志:

git

十三、彻底撤销最近的提交

1
git reset --hard HEAD^

引用回退到前一次,而且工作区和暂存区都会回退到上一次提交的状态。自上一次以来的提交全部丢失。适用于完全恢复到上一个版本:
git

十四、回退到上一次提交的状态,按照某一次的commit完全反向的进行一次commit.(代码回滚到上个版本,并提交git)

1
git revert HEAD

git
git log –oneline查看日志
git
git reset –hard a103285 我们接着回到之前的版本
git
可以看到我们的HEAD已经指到了a103285,于是,我们完成了一次回退。

基本上就这些了,以后再碰到新的问题,我接着往下写吧。

参考:
http://blog.chinaunix.net/uid-10415985-id-4142896.html
http://www.cnblogs.com/leehongee/p/3674570.html
http://blog.csdn.net/cankingapp/article/details/18312117
http://www.oschina.net/translate/10-tips-git-next-level