我做了巨大的合并,从ide(intellij想法),所以当所有的冲突解决,并且som代码被修改,我做了提交(合并) ,然后注意到有两个文件正在重新提交。所以我再次承诺。Git恢复合并,再加上一个提交重新合并
有两种questionss:
为什么我已经第二次提交。这是因为IDE不知何故错过了
added
承诺合并(ide不够聪明,看到一个合并的上下文中的所有变化?)。如果我忘记add
文件到index
如果我会在合并后使用命令行(?)如何恢复这两个提交以便我可以执行一个纯合并?
像图:
[commit1] < - [megre提交] < - [前提交] | (主)
我试图git rebase -i rebase HEAD~2
(只是最初的想法到两次提交合并),但显示所有121个commists - 一个commit1和合并提交120。
基本上我想将[lost] /'detached'[commit1]添加到[merge-commit]并进行一次合并。
更新: 我没有我的代码与我一起尝试,但这是否有意义?
// revert two commits to have one
1. git reset --soft HEAD~
2. git revert -m 1 merge-commit
3. git commit
我希望再次看到所有那些1 + 120提交。但后来我将如何合并
// move my merged stuff into new branch
4. git push origin -u new_branch
// move back on history in master branch
5. git reset --hard before-commit
6. git merge new_branch
7. git push -f origin master
那么这个混帐合并new_branch会去没有任何冲突,因为我alredy被合并..所以可能不会显示从那里它是从真正的合并(HI)的故事..但至少最终的结果应该是一样的。理论上。
?
这孩子,这就是为什么使用IDE的Git的整合永远是您自己的风险,以及为什么使用CLI几乎总是首选。你**可能能够通过交互式底图来压缩提交(如果你还没有推送提交)。但是,请确保它适用于合并提交,因为我不确定。 –
IDE刚好适合合并,所以我看到了不错的图片,改变了什么以及如何改变。 – ses
我遵循任何Git GUI的“look,do not touch”规则。 –