4

不是 找出本地分支正在跟踪的远程分支,如果我有多个遥控器,我可能在所有遥控器中都有“master”。 git branch返回 master 但我不知道我所在的 master 分支是在 remoteFoo 还是 remoteBar 中。例如,我可能会这样做:

git clone someRepo.git
cd someRepo
git remote add anotherRemote otherremoteURL

然后git remote显示

someRepo
anotherRemote

在这两种情况下,我都可以git checkout -b master someRepo/mastergit checkout -b master anotherRemote/master并且git branch会说“主人”。如何取回第一部分“someRepo”或“anotherRemote”?

你会认为我可以使用git remote show,但它需要一个参数,即你想要信息的遥控器的名称。

$ git remote show origin
fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
$ git remote show
someRepo
anotherRemote

随着git branch我得到当前的指示:

$ git branch
  hold
* master
  old-stuff
  refactor

但输出中没有“*” git remote

4

3 回答 3

13

您可能想在下面尝试这些以查看详细信息。

git remote -v
git remote -v show origin

下面的示例输出:

dmasi@:/var/www/pirate_booty$ git remote -v
origin  git@bitbucket.org:dmasi/pirate_booty_calculator.git (fetch)
origin  git@bitbucket.org:dmasi/pirate_booty_calculator.git (push)

dmasi@:/var/www/pirate_booty$ git remote -v show origin
* remote origin
  Fetch URL: git@bitbucket.org:dmasi/pirate_booty_calculator.git
  Push  URL: git@bitbucket.org:dmasi/pirate_booty_calculator.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)
于 2012-09-27T03:02:25.513 回答
9

git status -sb似乎很容易理解和记住。

-s代表以短格式给出输出。

b用于显示分支和跟踪信息。

参考:https ://git-scm.com/docs/git-status#git-status--s

于 2018-05-31T18:01:37.497 回答
2

这在此处的类似问题中得到了回答:要让当前分支跟踪远程分支,

git rev-parse --symbolic-full-name --abbrev-ref @{u}
于 2012-09-26T20:13:23.673 回答