Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 使用中间合并分支的提交挤压提交_Git_Squash - Fatal编程技术网

Git 使用中间合并分支的提交挤压提交

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第二次提交

在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第二次提交
选择第三次提交
从主服务器选择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程序。

您可以做两件事。(考虑到你不想压扁主人,主人就把你压扁了)

  • 两项承诺
一个提交1,2,3个提交,另一个将挤压 4,5,6

  • 应用一些分支魔法
你可以

  • 撤消导致分支当前结构的重基或合并(请参阅)(从主分支提交的内容在分支之间交错)
  • 把你所有的承诺都压在一起
  • 重新基址或再次与主节点合并

  • 如果远程服务器上已经存在当前的分支结构,则在以上述任何一种方式进行更改后,您必须强制推送。

    您可以做两件事。(考虑到你不想压扁主人,主人就把你压扁了)

    • 两项承诺
    一个提交1,2,3个提交,另一个将挤压 4,5,6

    • 应用一些分支魔法
    你可以

  • 撤消导致分支当前结构的重基或合并(请参阅)(从主分支提交的内容在分支之间交错)
  • 把你所有的承诺都压在一起
  • 重新基址或再次与主节点合并

  • 如果远程服务器上已经存在当前的分支结构,则在以上述任何一种方式进行更改后,必须强制推送。

    没有尝试这样做。你能再写点什么吗?你不能把你的承诺压缩成一个承诺(就目前的情况而言)。DDD需要X和Y。您所能做的最好的方法是压缩前三个和最后三个,或者将您的提交重新排序到不同的分支上。不要尝试那样做。你能再写点什么吗?你不能把你的承诺压缩成一个承诺(就目前的情况而言)。DDD需要X和Y。您所能做的最好是压缩前三个和最后三个,或者将您的提交重新排序到其他分支上。谢谢您的消息!然而,我也需要知道如何改变历史。当我有一个接一个的,我需要压扁然后我知道怎么做。所以请告诉我如何改变历史。如何上下移动提交?或者如何复制/粘贴它们以获得正确的流?尝试了正常复制,但不起作用。要上下移动提交,实际上只需在rebase程序中上下移动行即可。您只需认识到,rebase程序中的顺序是按时间顺序排列的,而历史(
    git log
    )中的顺序正好相反。在文本编辑器中上移或下移行是否有问题?也许
    vi
    打开时您不知道快捷方式?在这种情况下,
    git config core.editor
    的输出可能会对我们有所帮助。谢谢您的留言!然而,我也需要知道如何改变历史。当我有一个接一个的,我需要压扁然后我知道怎么做。所以请告诉我如何改变历史。如何上下移动提交?或者如何复制/粘贴它们以获得正确的流?尝试了正常复制,但不起作用。要上下移动提交,实际上只需在rebase程序中上下移动行即可。您只需认识到,rebase程序中的顺序是按时间顺序排列的,而历史(
    git log
    )中的顺序正好相反。在文本编辑器中上移或下移行是否有问题?也许
    vi
    打开时您不知道快捷方式?也许是外卖