根据手册git dcommit <!>#8220;将创建在git中对每个提交进行SVN修订。<!>#8221;但有没有办法避免多次Subversion修订?也就是说,让git在执行svn commit

之前合并所有更改
有帮助吗?

解决方案

如果你在git的分支机构工作,你可以 git-merge --squash ,哪个在git中做到了。然后你可以将那个被压扁的提交推送到SVN。

当然,很多小提交都很好,所以你为什么要挤压它们呢?

其他提示

命令git rebase -i可以执行此操作,等等。这个命令非常强大,所以与它交朋友真好。

语法为:git rebase -i <commit ID>。这将打开文本编辑器,其中包含用于修改所有提交(不包括)给定ID的选项(和说明)。

例如,要修改之前的5次提交,您可以执行以下操作:

git rebase -i HEAD~5

或者,如果您的SVN分支被称为<!>“svn / trunk <!>”,那么这种语法也很好:

git rebase -i svn/trunk

然后会弹出一个文本编辑器窗口。要压缩所有内容,请在第一行之后更改每一行的第一个单词<!> quot; pick <!> quot; to <!> quot; squash <!> quot; (如果这听起来很混乱 - 当你看到它时会更有意义)。然后保存并关闭编辑器。然后,您将有机会编辑压缩提交的提交消息。

您可以使用<=>执行的其他操作包括重新排序提交,以不同方式压缩提交以及删除提交。

我经常使用这个命令;这是Git的一个杀手锏。

Ryan Tomayko 写了一些关于git rebase -i的内容,他说:

  

<!>#8230; [它]有点像git commit --amend跳上酸和拿着电锯<!>#8211;完全疯狂,非常危险,但能够暴露出全新的心态。在这里,您可以编辑,压缩,重新排序,分离和注释现有提交,使其更容易,更直观。

我倾向于经常在git中提交,但不一定要将每个提交给svn,并且压缩我的所有工作都没有意义。我现在正在尝试重新排序并将几个压缩成更多逻辑提交单元。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top