Fork me on GitHub

至简

Be simple

为了寻找你,我把自己搬进鸟的眼睛,经常盯着路过的风。


Git问题汇总


修改.gitignore文件不生效

git rm -r --cached .

移除已经托管的文件,然后重新上传仓库即可。


解决合并冲突

这种情况一般是在协同开发过程中,同一文件的同一地方被多人编辑或者在不同分支被编辑,然后在merge时碰到,因为此时Git无法确定要保留哪一处改动, 所以这时我们要根据CONFLICT的提示,找到引起冲突的文件并打开,并找到类似下面的冲突符号:

<<<<<<< HEAD
比如这是冲突文件的第一行,你改动了此处,改动后的内容显示在这里
=======
而其他人也改动了第一行,并且他改动后的内容显示在这里
>>>>>>> xxxxxx

确认保留内容后,删除冲突符号,并依次执行:

git add 冲突文件名
git commit -m "conflict fixed"
git push

注意:commit后直接push即可,虽然提示了冲突,但实际已经合并过了。


push时遇到Everything up-to-date

说下我个人碰到的情况,我在master分支合并dev分支后进行push,结果出现该提示,出现该问题的原因参考stackoverflow这里

一个可行解决方案是创建一个新分支,假如为tmp分支,并切换到该分支:

git branch tmp
git checkout tmp

然后三连:

git add .
git commit -m "something"
git push --set-upstream origin tmp

再三连:

git checkout master
git merge tmp
git push

这时应该就可以了,如果要删除tmp分支请参考这里2.4小节。


一直显示merging

git reset --hard HEAD