Git 如何确定本地跟踪分支?

Git 如何确定本地跟踪分支?,git,svn,git-svn,Git,Svn,Git Svn,好的,情况如下: 我在本地存储库中有一个名为“功能分支”的git分支。 此分支已启用git svn,它正在跟踪本地分支“remotes/svn/Branchs/feature branch”。 该分支正在跟踪外部存储库中的SVN分支 现在我知道了如何确定跟踪哪个SVN分支,这可以通过git SVN info完成。 但是,如何确定我的功能分支跟踪哪个本地远程分支? 即,如何确定“功能分支”正在跟踪“远程/svn/分支/功能分支” 使用GIT中的“普通”跟踪分支,我可以执行GIT branch-av

好的,情况如下: 我在本地存储库中有一个名为“功能分支”的git分支。
此分支已启用git svn,它正在跟踪本地分支“remotes/svn/Branchs/feature branch”。
该分支正在跟踪外部存储库中的SVN分支

现在我知道了如何确定跟踪哪个SVN分支,这可以通过
git SVN info
完成。 但是,如何确定我的功能分支跟踪哪个本地远程分支? 即,如何确定“功能分支”正在跟踪“远程/svn/分支/功能分支”

使用GIT中的“普通”跟踪分支,我可以执行
GIT branch-avv
,它将为每个分支显示它正在跟踪的分支。(这也相当麻烦…)

我的最终目标是能够显示尚未推送到SVN存储库的提交。我可以通过运行
git log$remote..HEAD
轻松做到这一点。
但是我需要知道什么是
$remote

您的
功能分支
正在跟踪git提交(由SHA1散列定义)。它没有跟踪SVN分支,因为git SVN没有为SVN服务器创建远程服务器(与SVN服务器之间的所有获取/重基/标记/分支/提交功能都是使用
git SVN…
完成的)

根据:

请注意以下规则:
git svn dcommit

将尝试在中命名的SVN提交之上提交

git日志--grep=^git svn id:--第一个父级-1

…因此,您使用
git svn info
git log--grep=^git svn id:--first parent-1
来确定svn跟踪的分支是正确的


要查找包含特定提交的所有其他已知Git分支(基于SHA1散列),请尝试
Git分支--all--contains
(例如:
Git分支--all--contains 856ce
--部分散列可以正常工作)

要获取当前分支的完整提交哈希,请尝试
git rev parse HEAD
。但是,您可能需要最后一次SVN提交的完整提交哈希值,因此您需要使用来自
git log--grep=^git SVN id:--first parent-1
的输出的SHA1哈希值


要从上次提交到HEAD的日志中获取日志,您需要找到您的SVN跟踪分支(正如您已经知道的那样),并将其插入以下内容:

git rev-list --date-order --max-count=1 <svn-tracked-branch>
git log <above-returned-hash>..HEAD
git版本列表--日期顺序--最大计数=1
吉特日志..头
ex(对于git,部分哈希几乎总是有效的):

$git rev list--日期顺序--最大计数=1
117bbf6390a6cd62b47e9335be6a6d93c99d88e7
$git原木117bbf..HEAD
提交f071e1781a98c33c2b36c21aedce4a9ab2311d47
作者:我
日期:2013年8月30日星期五15:19:27-0700
测试

如果使用git日志中的SHA1散列--grep=^git svn id:--第一个父级-1,而不是额外运行
git rev list--date order--max count=1
命令,您可能会得到更多有用的信息。

功能分支
正在跟踪git提交(由SHA1散列定义)。它没有跟踪SVN分支,因为git SVN没有为SVN服务器创建远程服务器(与SVN服务器之间的所有获取/重基/标记/分支/提交功能都是使用
git SVN…
完成的)

根据:

请注意以下规则:
git svn dcommit

将尝试在中命名的SVN提交之上提交

git日志--grep=^git svn id:--第一个父级-1

…因此,您使用
git svn info
git log--grep=^git svn id:--first parent-1
来确定svn跟踪的分支是正确的


要查找包含特定提交的所有其他已知Git分支(基于SHA1散列),请尝试
Git分支--all--contains
(例如:
Git分支--all--contains 856ce
--部分散列可以正常工作)

要获取当前分支的完整提交哈希,请尝试
git rev parse HEAD
。但是,您可能需要最后一次SVN提交的完整提交哈希值,因此您需要使用来自
git log--grep=^git SVN id:--first parent-1
的输出的SHA1哈希值


要从上次提交到HEAD的日志中获取日志,您需要找到您的SVN跟踪分支(正如您已经知道的那样),并将其插入以下内容:

git rev-list --date-order --max-count=1 <svn-tracked-branch>
git log <above-returned-hash>..HEAD
git版本列表--日期顺序--最大计数=1
吉特日志..头
ex(对于git,部分哈希几乎总是有效的):

$git rev list--日期顺序--最大计数=1
117bbf6390a6cd62b47e9335be6a6d93c99d88e7
$git原木117bbf..HEAD
提交f071e1781a98c33c2b36c21aedce4a9ab2311d47
作者:我
日期:2013年8月30日星期五15:19:27-0700
测试
如果从
git log--grep=^git svn id:--first parent-1
使用SHA1散列,而不是额外运行
git rev list--date order--max count=1
命令,您可能会得到更多有用的信息