git-svn是否可以确定我之前或之后有多少个提交?
谢谢!
git svn fetch
开始使您的本地存储库保持最新状态,然后从那里开始。要找出您当前在分支中有多少个提交但尚未提交到Subversion服务器的提交,有很多技巧,但是最明显的是运行git svn dcommit --dry-run
,并查看列出了多少提交要推送到Subversion。
短版:运行git svn dcommit --dry-run | grep diff-tree | wc -l
。
要计算出Subversion信息库中有多少个提交,而不是您正在处理的分支中的提交,您需要先计算出或知道要使用的Subversion分支的名称。您可能可以从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
解决方法是手动修改.gitconfig:how-to-set-upstream-branch-in-git-svn