git新手。在Mac上使用git enterprise。
所以我一直在IntelliJ IDEA的分支机构工作,让我们称之为" foo"。所以master-> foo。
对我的更改很满意,所以我将它们推送/提交到远程仓库。那时我已经准备好开始将更改合并到master中的过程。但首先,我想将master中的任何更改合并到我的分支中并进行测试。
所以,用" foo"仍然检查出来,我跑了" git merge origin / master"。
这带来了我期待的变化。我解决了任何冲突。此时我在进行合并之前发现了我想要修改的内容。所以在IntelliJ中,我去了版本控制" " Local Changes"标签。右键单击并选择"还原"。
这按预期还原了合并。我做了我的更改并且运行了#git merge origin / master"再次。但现在它说"已经是最新的"。
帮助!
答案 0 :(得分:2)
合并由两部分组成 - 更改当前快照中的文件,并使用2个父级进行提交,告诉git已完成合并。当您在合并提交上执行git revert
时,它会撤消前者,但不会撤消后者。所以就git而言,你已经在origin/master
中合并了。唯一的方式是"重新合并"恢复合并提交后,再次调用git revert
,向其传递前一个git revert
生成的提交;你必须"还原恢复"。
答案 1 :(得分:1)
我建议你在合并提交上启动一个分支并在那里进行更改。然后,您可以使用更改进行新的提交。我没有看到“还原”的任何理由。
如果您确实要在进行更改之前撤消合并,则需要在命令行中使用git reset
或在IntelliJ IDEA的“版本控制”窗口中使用“重置以听取...”。然后您可以进行更改,但您还必须再次进行合并以及解决冲突。这似乎比它的价值要多得多。