Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
466 views
in Technique[技术] by (71.8m points)

开源项目 git pull 代码冲突的解决方式?

假设我正在使用一个开源项目,为了时刻保持根官方github保持同步,我用git clone项目到本地并进行二次开发,我的大部分二次开发是不会和官方的核心文件产生冲突的,但是个别文件还是会冲突。。

比如经过一段时间我本机做了一些修改,这是官方仓库也做了一些修改,并发布了一个小版本

这时我想更新官方最新 使用 git pull 的时候会提示冲突 那么问题来了

开源项目二次开发 想随时git pull获得最新版本,并保留本机修改的方法是怎样的?

我现在的做法

当git pull获取官方最新更新的时候如果冲突

使用 git stash 缓存本机的改动。
然后 git pull 下来官方最新的版本
然后 git stash pop 把本机的改动merge到代码中,手动解决冲突

我简单测试了一下并没发现什么问题,因为我并不需要push代码到官方仓库所以我一般也不会add,但是经历过这次以后,我又做了一些修改,官方又更新了一些东西

使用git pull还是不行 我要本机git add . 一下 然后重复以上stash 步骤来保持更新和合并冲突,

不知道我这么做是否正确,或者有什么更好的做法么?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

其实如果你本地已经进行了提交(git commit),在拉取远程的改动前,并不需要先git stash,直接git pull或者先git fetchgit merge就可以了。
当然,如果你在拉取之前,本地并没有提交(git commit)的话,你的上述操作也是没有问题的,但是,你也可以先将本地的修改做完然后提交了再拉取(git pull)。
其实,你的git stash应用的场合不太合适,git stash一般用于你在某一分支工作做了一半(还不值得做一次提交或者压根还不想提交)时,你突然想切换到其他分支做一点儿别的事。这时,用git stash就再合适不过了。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...