git 解冲突

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

  git stash

git pull
git stash pop

 然后可以使用Git diff -w +文件名 来确认代码自动合并的情况.

 

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

 git reset --hard

 git pull

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

 
  • git checkout HEAD file/to/restore  

-----------------------
我的经验是使用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

原文地址:https://www.cnblogs.com/bluestorm/p/6323138.html