有没有办法用git-svn来确定我提前或落后了多少个提交?
谢谢!
发布于 2013-06-10 18:10:46
不是直接的。不过,您可以做的是找出与Subversion存储库的本地副本相比领先和/或落后了多远。
因此,从git svn fetch开始,让您的本地存储库保持最新状态,然后从那里开始。
要找出在您当前所在的分支中有多少提交,但哪些提交没有提交到Subversion服务器,有一大堆技巧,但最明显的一个是运行git svn dcommit --dry-run,并查看列出了多少提交要推送到Subversion。
简而言之:运行git svn dcommit --dry-run | grep diff-tree | wc -l。
您可能可以从git svn dcommit --dry-run或git log -1 --grep git-svn-id的第一行开始解决这个问题。
假设您的分支是master,父Subversion分支是remotes/svn/trunk。然后,您可以运行git svn rev-list master..remotes/svn/trunk | wc -l来计算远程主干中而不是分支中的所有提交。
作为上述所有方法的替代方案,在创建分支时,将其指定为跟踪Subversion分支。例如,当我基于远程干线创建本地分支时,我按如下方式创建:
git checkout -b new-branch-name -t remotes/svn/trunk现在,每当我执行git status或git checkout new-branch-name时,输出都会包含一行内容,告诉我每个分支相对于另一个分支的前后位置有多远。
对于已经存在的分支,您可以将其设置为跟踪Subversion分支,如下所示:
git branch --set-upstream existing-branch remotes/svn/trunk发布于 2019-11-20 18:16:31
在git >= 1.9中,似乎存在一个阻止使用--set-upstream/--set-upstream-to的错误
在git 2.23.0中,它也不适用于我
解决方法是手动修改.gitconfig:how-to-set-upstream-branch-in-git-svn
https://stackoverflow.com/questions/16921873
复制相似问题