参见: 如何查看哪个Git分支正在跟踪哪个远程/上游分支?

如何知道本地分支正在跟踪哪个远程分支?

我是否需要解析git配置输出,或者是否有一个命令可以为我做这件事?


当前回答

grep 'BRANCH_NAME'

git branch -vv:该部分将显示所有本地分支及其上游分支。

grep 'BRANCH_NAME':它将从分支列表中过滤当前分支。

其他回答

如果你想找到任何分支的上游(而不仅仅是你所在的分支),这里是对@cdunn2001的答案的轻微修改:

git revv -parse——abbrev-ref——symbol -full-name

这将为名为YOUR_LOCAL_BRANCH_NAME的本地分支提供远程分支名称。

我认为git branch -av只告诉你你有什么分支,它们在哪个提交,让你推断本地分支正在跟踪哪些远程分支。

Git remote show origin显式地告诉你哪个分支正在跟踪哪个远程分支。下面是一个存储库的输出示例,包含一个提交和一个名为branch的远程分支:

$ git branch -av
* abranch                d875bf4 initial commit
  master                 d875bf4 initial commit
  remotes/origin/HEAD    -> origin/master
  remotes/origin/abranch d875bf4 initial commit
  remotes/origin/master  d875bf4 initial commit

$ git remote show origin
* remote origin
  Fetch URL: /home/ageorge/tmp/d/../exrepo/
  Push  URL: /home/ageorge/tmp/d/../exrepo/
  HEAD branch (remote HEAD is ambiguous, may be one of the following):
    abranch
    master
  Remote branches:
    abranch tracked
    master  tracked
  Local branches configured for 'git pull':
    abranch merges with remote abranch
    master  merges with remote master
  Local refs configured for 'git push':
    abranch pushes to abranch (up to date)
    master  pushes to master  (up to date)

下面的命令将远程原点电流叉指的是

Git remote -v

添加远程路径时,

Git远程添加原始路径_name

在尝试了这里所有的解决方案后,我意识到没有一个解决方案在所有情况下都是好的:

在当地分公司工作 分离分支的工作 在CI公司工作

该命令获取所有名称:

git branch -a --contains HEAD --list --format='%(refname:short)'

对于我的应用程序,我必须过滤掉HEAD和master引用,更喜欢远程引用,并去掉单词“origin/”。然后如果没有找到,使用第一个没有/或a(的非HEAD引用。

你可以试试这个:

git remote show origin | grep "branch_name"

Branch_name需要替换为您的分支