将本地Git提交合并为git-svn的一个提交

Mac*_*ton 27 commit git-svn dcommit

目前,当我运行git svn dcommitgit 时,为自上次与SVN同步以来我所做的每个本地提交在SVN中创建一个单独的提交.是否有任何方法dcommit可以将我最近的所有本地提交合并为一个SVN提交?

Jas*_*yon 18

git rebase remotes/trunk --interactive 
Run Code Online (Sandbox Code Playgroud)

应该带你进入菜单,在那里你可以选择提交或将它们全部压缩为1次提交,以避免污染你的svn存储库. 是使用git-svn时非常好(但很短)的资源.


Lil*_*ard 17

不,但你可以很容易地将所有提交压缩在一起.对于以下示例,我将假设您位于master与远程trunk分支对应的分支上,并且您希望将所有本地提交压缩在一起:

git tag local # create a temporary tag
git reset --hard trunk
git merge --squash local
git commit # write your single commit message here
git svn dcommit
git tag -d local # delete the temporary tag named local
Run Code Online (Sandbox Code Playgroud)

您也可以使用reflog(即master@{1}代替local)使用临时标签,而不是使用临时标签