我如何将最后的N承诺集成到一个承诺中?
当前回答
我如何将我的最后一个X承诺集成到一个使用Git的承诺?
git rebase -i HEAD~X
下列内容将显示:
pick 1bffc15c My earlier commit
pick 474bf0c2 My recent commit
# ...
对于你想要的承诺,请用 fixup 取代 pick,所以它会变成:
pick 1bffc15c My earlier commit
fixup 474bf0c2 My recent commit
# ...
如果它在 vim 中打开(终端内默认界面),然后按 Esc 在键盘上,输入 :wq 并输入以保存文件。
查看: 查看 git log
其他回答
您可以按照 git 命令使用。
git rebase -i HEAD~n
n(=4在这里)是最后的承诺的数字,然后你得到了以下选项,
pick 01d1124 Message....
pick 6340aaa Message....
pick ebfd367 Message....
pick 30e0ccb Message....
更新如下,选择一个承诺,并将其他人推到最新的,
p 01d1124 Message....
s 6340aaa Message....
s ebfd367 Message....
s 30e0ccb Message....
详细信息点击链接
如果您正在与 GitLab 合作,您可以按下面的 Merge 请求中的 Squash 选项,承诺消息将是 Merge 请求的标题。
此分類上一篇
git rebase -i HEAD^^
在哪里 ^'s 的数量是 X
(此分類上一篇: 最後兩個命令)
使用 git rebase -i <after-this-commit> 并在第二次和随后的命令中取代“squash”或“fixup”,如手册中所描述。
在此例子中, <after-this-commit> 是 SHA1 hash 或当前分支的 HEAD 的相对位置,从该分支的 Commits 被分析为 rebase 命令. 例如,如果用户希望从当前 HEAD 查看 5 个 Commits 在过去的命令是 git rebase -i HEAD~5.
要避免在重定向同一分支中的承诺时不得不解决任何合并冲突,您可以使用下列命令:
git rebase -i <last commit id before your changes start> -s recursive -X 我們
要将所有承诺分成一个,当您被要求编辑将合并的承诺时(在旗帜上),更新所有但第一个行动,从选择到分解,如其他答案中所建议。
在这里,我们使用合并策略(旗帜)回归和战略选项(X)我们的,以确保历史上后来的承诺赢得任何合并冲突。
注意:不要把这与我们做别的事情的 git rebase 混淆。
引用: git rebase recursive merge 策略
推荐文章
- 为什么调用git分支——unset-upstream来修复?
- Windows git“警告:LF将被CRLF取代”,这是警告尾巴向后吗?
- git中的哈希冲突
- git可以自动在空格和制表符之间切换吗?
- Git暂存文件列表
- 如何将git配置存储为存储库的一部分?
- 如何修改GitHub拉请求?
- 如何在Github和本地删除最后n次提交?
- 我如何调试git/git-shell相关的问题?
- 错误:无法使用rebase进行拉取:您有未分阶段的更改
- Git隐藏未缓存:如何把所有未分期的变化?
- 真实的恶魔
- 如何从另一个分支获得更改
- Git:权限被拒绝(publickey)致命-无法从远程存储库读取。克隆Git存储库时
- git reflog和log有什么区别?