在 git 中创建新分支时如何执行压缩?
How do I perform a squash while creating a new branch in git?
有什么方法可以在创建新分支之前压缩所有以前的提交。我想在 bitbucket 中有一个干净的提交页面,以便在创建新分支之前主分支上的所有内容都显示为只有 1 次提交。
我知道合并分支或推送分支时压缩的其他选项。我在 Whosebug 中找到了另一个答案,它告诉我如何在使用 "git rebase -i" 推送之前压缩你的提交,但我正在寻找一个选项来压缩新分支中的提交。
您可以在原地创建新分支,然后执行您的 rebase -i
,最终您的旧分支将保持不变,而您的新分支将被压扁:
git checkout -b my_new_branch
git rebase -i
创建新分支时,根据要压缩的分支(新分支还是旧分支)检查或不检查...
你必须明白 git 总是创建新的提交,所以当你使用 rebase -i
压缩时,git 只是创建一个新的提交,压缩所有提交的内容。旧的不再可见,因为引用不是 "handled"。您保留参考(旧分支)的事实使您仍然可以看到它们。
请参阅 git-checkout 手册页中关于 --orphan 选项的说明。:
--orphan <new_branch>
Create a new orphan branch, named <new_branch>, started from
<start_point> and switch to it. The first commit made on this new
branch will have no parents and it will be the root of a new
history totally disconnected from all the other branches and
commits.
这似乎是你想要做的,在这里。
有什么方法可以在创建新分支之前压缩所有以前的提交。我想在 bitbucket 中有一个干净的提交页面,以便在创建新分支之前主分支上的所有内容都显示为只有 1 次提交。
我知道合并分支或推送分支时压缩的其他选项。我在 Whosebug 中找到了另一个答案,它告诉我如何在使用 "git rebase -i" 推送之前压缩你的提交,但我正在寻找一个选项来压缩新分支中的提交。
您可以在原地创建新分支,然后执行您的 rebase -i
,最终您的旧分支将保持不变,而您的新分支将被压扁:
git checkout -b my_new_branch
git rebase -i
创建新分支时,根据要压缩的分支(新分支还是旧分支)检查或不检查...
你必须明白 git 总是创建新的提交,所以当你使用 rebase -i
压缩时,git 只是创建一个新的提交,压缩所有提交的内容。旧的不再可见,因为引用不是 "handled"。您保留参考(旧分支)的事实使您仍然可以看到它们。
请参阅 git-checkout 手册页中关于 --orphan 选项的说明。:
--orphan <new_branch>
Create a new orphan branch, named <new_branch>, started from
<start_point> and switch to it. The first commit made on this new
branch will have no parents and it will be the root of a new
history totally disconnected from all the other branches and
commits.
这似乎是你想要做的,在这里。