当前位置:  开发笔记 > 运维 > 正文

是否有可能在单个svn提交中使git svn dcommit结果?

如何解决《是否有可能在单个svn提交中使gitsvndcommit结果?》经验,为你挑选了3个好方法。

根据手册,git dcommit"将在git中为每个提交创建一个SVN版本."但有没有办法避免多次Subversion修订?也就是说,让git在执行之前合并所有更改svn commit



1> davetron5000..:

如果你在git中的一个分支上工作,你可以在git中做到git-merge --squash这一点.然后你可以将那个压扁的提交推送到SVN.

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


你的私人分支机构可以提供很多小的提交.但实际上没有任何价值可以将所有噪音推向上游("添加等等","忘记添加等等的yadda","实际上添加yadda","darn,修正错字","好吧,现在它应该工作","嗯,真的吗?").
我使用了许多小提交来轻松跟踪更改; 当我提交到svn服务器时,我们为每个SVN提交生成一封电子邮件.我宁愿做额外的工作,合并回到主人与壁球为"逻辑单位"提交并保存每个人几封电子邮件.

2> andy..:

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

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

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

git rebase -i HEAD~5

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

git rebase -i svn/trunk

然后会弹出一个文本编辑器窗口.要压扁所有东西,将第一个单词后面的第一个单词从"pick"更改为"squash"(如果这看起来很混乱 - 当你看到它时会更有意义).然后保存并关闭编辑器.然后,您将有机会编辑压缩提交的提交消息.

您可以使用的其他功能git rebase -i包括重新排序提交,以不同方式压缩提交以及删除提交.

我经常使用这个命令; 这是Git的杀手级功能.



3> cbowns..:

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

...... [它]有点像git commit -amend跳上酸和拿着电锯 - 完全疯了,非常危险但能够暴露出全新的心态.在这里,您可以以比它应该更容易和更直观的方式编辑,压缩,重新排序,分离和注释现有提交.

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

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有