我开始使用git merge,但是我想要保留本地更改。我不想再合并,而是继续处理本地更改。我该怎么做?
答案 0 :(得分:6)
众所周知,语言含糊不清。 :-)当你说“保持局部变化”时你可能意味着:
这个简单的解决方案解决了第(1)点:
$ git stash save
$ git stash pop
以下是显示影响的成绩单:
$ git status
On branch stuff-217/apply-new-config-details
All conflicts fixed but you are still merging. <<<<<< notice this line!
Changes to be committed:
modified: package.json
modified: src/wallabyTest.ts
modified: wallaby.js
$ git stash save
Saved working directory and index state WIP on stuff-217/apply-new-config-details...
$ git status
On branch stuff-217/apply-new-config-details
nothing to commit, working tree clean
$ git stash pop
On branch stuff-217/apply-new-config-details
<<<<<< no longer in the merge!
Changes not staged for commit:
modified: package.json
modified: src/wallabyTest.ts
modified: wallaby.js
答案 1 :(得分:0)
首先,复制您正在处理的文件夹,以防发生不良事件。 Git通常非常防弹,但是如果你开始使用git reset --hard
,就有可能发生坏事。
然后,执行git commit --patch
,仅选择要保留的更改并保留合并所做的所有操作。一旦您提交了这些更改,请执行git reset --hard
,并且合并应该消失,但您的更改仍应存在。
答案 2 :(得分:0)
找到了以下经过测试的解决方案:
rm .git/MERGE*
rm .git/ORIG_HEAD
可能会有些危险,因为您基本上是在直接干扰git的内部工作,因此请先备份您的文件夹:)
答案 3 :(得分:0)
今天发生在我身上,我需要在一个新的分支中进行合并,该分支是通过develop创建的,并且对另一个分支进行了某些更改...
我尝试了迈克尔·索伦斯(Michael Sorens)的解决方案,但是还需要额外的步骤... git add .
,如果您有冲突
git checkout -b mynewbranchfromdevelop
git merge AnotherBranchToMergeIntoMynewbranchfromdevelop
它有冲突,我试图制作一个git stash,但是出现“需要合并”消息,我要做的只是使用
git add .
要解决并逐步解决这些冲突(但仍需要git commit来完成合并),然后
git stash
会将这些更改保存在一个存储库中,如果您使用“ git status”进行检查,则没有任何内容可提交,并且无法清除树
git stash apply
您将在当前分支的本地目录中进行那些更改而无需提交