Git 使用中间合并分支的提交挤压提交
在branch_某物上有这样的情况:Git 使用中间合并分支的提交挤压提交,git,squash,Git,Squash,在branch_某物上有这样的情况: FFF - 6th commit EEE - 5th commit DDD - 4th commit Y commit from master X commit from master CCC - 3rd commit BBB - 2nd commit AAA - 1st commit 如何仅压缩我的提交?必须运行的命令是git rebase-i AAA~(注意~) 它将使用以下rebase程序打开默认文本编辑器: 选择AAA首次提交 选择BBB第二次提交
FFF - 6th commit
EEE - 5th commit
DDD - 4th commit
Y commit from master
X commit from master
CCC - 3rd commit
BBB - 2nd commit
AAA - 1st commit
如何仅压缩我的提交?必须运行的命令是
git rebase-i AAA~
(注意~
)
它将使用以下rebase程序打开默认文本编辑器:
选择AAA首次提交
选择BBB第二次提交
选择第三次提交
从主服务器选择X提交
从master中选择Y提交
选择DDD第四次提交
选择EEE第5次提交
选择FFF第6次提交
您必须编辑文本,使其看起来像:
pick X commit from master
从master中选择Y提交
选择AAA首次提交
壁球BBB第二次提交
压榨CCC第三次提交
压扁DDD第4次提交
压扁EEE第5次提交
挤压FFF第6次提交
保存并退出文本编辑器
Git将运行,然后再次打开文本编辑器,让您有机会编辑提交消息:
#这是6次提交的组合。
#这是第一条提交消息:
第一次提交
#这是提交消息#2:
第二次提交
...
编辑提交消息,保存并退出
最后,历史将是这样的:
GGG压缩提交
你从主人那里得到了什么
X从主机提交
请注意,您还可以将commit X和Y放在压缩的commit之后,并相应地编辑rebase程序。必须运行的命令是
git rebase-i AAA~
(请注意~
)
它将使用以下rebase程序打开默认文本编辑器:
选择AAA首次提交
选择BBB第二次提交
选择第三次提交
从主服务器选择X提交
从master中选择Y提交
选择DDD第四次提交
选择EEE第5次提交
选择FFF第6次提交
您必须编辑文本,使其看起来像:
pick X commit from master
从master中选择Y提交
选择AAA首次提交
壁球BBB第二次提交
压榨CCC第三次提交
压扁DDD第4次提交
压扁EEE第5次提交
挤压FFF第6次提交
保存并退出文本编辑器
Git将运行,然后再次打开文本编辑器,让您有机会编辑提交消息:
#这是6次提交的组合。
#这是第一条提交消息:
第一次提交
#这是提交消息#2:
第二次提交
...
编辑提交消息,保存并退出
最后,历史将是这样的:
GGG压缩提交
你从主人那里得到了什么
X从主机提交
请注意,您还可以在压缩提交之后放置提交X和Y,并相应地编辑rebase程序。您可以做两件事。(考虑到你不想压扁主人,主人就把你压扁了)
- 两项承诺
- 应用一些分支魔法
如果远程服务器上已经存在当前的分支结构,则在以上述任何一种方式进行更改后,您必须强制推送。您可以做两件事。(考虑到你不想压扁主人,主人就把你压扁了)
- 两项承诺
- 应用一些分支魔法
如果远程服务器上已经存在当前的分支结构,则在以上述任何一种方式进行更改后,必须强制推送。没有尝试这样做。你能再写点什么吗?你不能把你的承诺压缩成一个承诺(就目前的情况而言)。DDD需要X和Y。您所能做的最好的方法是压缩前三个和最后三个,或者将您的提交重新排序到不同的分支上。不要尝试那样做。你能再写点什么吗?你不能把你的承诺压缩成一个承诺(就目前的情况而言)。DDD需要X和Y。您所能做的最好是压缩前三个和最后三个,或者将您的提交重新排序到其他分支上。谢谢您的消息!然而,我也需要知道如何改变历史。当我有一个接一个的,我需要压扁然后我知道怎么做。所以请告诉我如何改变历史。如何上下移动提交?或者如何复制/粘贴它们以获得正确的流?尝试了正常复制,但不起作用。要上下移动提交,实际上只需在rebase程序中上下移动行即可。您只需认识到,rebase程序中的顺序是按时间顺序排列的,而历史(
git log
)中的顺序正好相反。在文本编辑器中上移或下移行是否有问题?也许vi
打开时您不知道快捷方式?在这种情况下,git config core.editor
的输出可能会对我们有所帮助。谢谢您的留言!然而,我也需要知道如何改变历史。当我有一个接一个的,我需要压扁然后我知道怎么做。所以请告诉我如何改变历史。如何上下移动提交?或者如何复制/粘贴它们以获得正确的流?尝试了正常复制,但不起作用。要上下移动提交,实际上只需在rebase程序中上下移动行即可。您只需认识到,rebase程序中的顺序是按时间顺序排列的,而历史(git log
)中的顺序正好相反。在文本编辑器中上移或下移行是否有问题?也许vi
打开时您不知道快捷方式?也许是外卖