如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:
git stash
git pull
git stash pop
然后可以使用Git diff -w +文件名 来确认代码自动合并的情况.
反过来,如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下:
git reset --hard
git pull
其中git reset是针对版本,如果想针对文件回退本地修改,使用
-----------------------
我的经验是使用rebase。
具体操作
1.git add <FILE>
2.git commit ...
3.git pull --rebase (将你的版本加在最后的节点上)
如果有冲突,会提示你。冲突分为两种,一种是在不同地方的冲突,通常情况下,git是可以自己合并的。另外一种是因为可能是同一个文件的编辑,git没法自动合并,需要二选一,这时候打开冲突的文件,手动编辑文件到可用的版本。然后。。
4.git rebase --continue
重复3,4直到所有的都solve
5.git push
上传到remote,搞定!
-----------------------
ref:
Git:代码冲突常见解决方法 - 陈小峰(iefreer)的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/iefreer/article/details/7679631
git中配置Beyond Compare作为mergetool - 千里之外 - 博客频道 - CSDN.NET
http://blog.csdn.net/woshinia/article/details/18040615
用git log --graph命令可以看到分支合并图。
sudo apt-get install meld; (install meld)
git config --global merge.tool meld; (set Git merge tool default as meld)
If you want to fix the conflicts, use
git mergetool;
Git - Book
https://git-scm.com/book/en/v2
Git - 远程分支
https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E8%BF%9C%E7%A8%8B%E5%88%86%E6%94%AF