查找本地分支正在追踪的远程分支。

13 浏览
0 Comments

查找本地分支正在追踪的远程分支。

这不是查找本地分支追踪的远程分支。如果我有多个远程仓库,它们中可能都有一个"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命令将在两种情况下都显示"master"。那么我如何获取第一部分的"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的输出中,却没有 "*" 符号。

0
0 Comments

找出本地分支正在跟踪的远程分支是一个常见问题,可以通过以下方法解决。

首先,可以参考这里的类似问题的解答:要获取当前分支正在跟踪的远程分支,可以使用以下命令:

git rev-parse --symbolic-full-name --abbrev-ref @{u}

但是,执行该命令可能会出现错误(error: No upstream configured for branch 'master')。这可能是由于使用的git版本问题导致的(我使用的是1.7.11.3版本)。

如果你的git版本是1.7.12或更高版本,那么这个命令应该可以正常运行。如果你的分支没有配置远程分支,那么可能存在其他问题。这是一个新分支吗?你是否已经将其推送到远程仓库?请执行git branch -a命令查看输出结果。

0
0 Comments

通过使用git remote -v命令,可以查看本地分支所跟踪的远程分支。下面是一个示例输出:

dmasi@:/var/www/pirate_booty$ git remote -v
origin  git.org:dmasi/pirate_booty_calculator.git (fetch)
origin  git.org:dmasi/pirate_booty_calculator.git (push)
dmasi@:/var/www/pirate_booty$ git remote -v show origin
* remote origin
  Fetch URL: git.org:dmasi/pirate_booty_calculator.git
  Push  URL: git.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)

在这个示例中,可以看到本地分支master正在跟踪远程分支origin的master分支。

为了找到本地分支正在跟踪的远程分支,可以执行以下命令:git remote -vgit remote -v show origin。这些命令将显示远程分支的详细信息,包括fetch URL、push URL等。

感谢git remote命令列出了所有的远程分支,并且git remote -v命令显示了当前远程分支的状态,这样我就可以提取输出的第一行的第一个单词,并将其作为当前远程分支。

通过上述命令,可以方便地找到本地分支所跟踪的远程分支。

0
0 Comments

git status -sb命令非常容易理解和记忆。

-s代表以短格式输出。

b代表显示分支和追踪信息。

通过执行git status -sb命令,可以查看本地分支的追踪信息。

然而,在某些情况下,用户可能需要查找一个本地分支正在追踪哪个远程分支。这种需求可能是为了了解分支之间的关联关系或者进行分支操作。

在git的官方文档中,并没有直接提供找出本地分支追踪的远程分支的命令。但可以通过一些其他的方式来实现。

解决方法:

1. 使用git branch -vv命令可以显示本地分支和追踪分支的详细信息,包括追踪的远程分支。

2. 使用git rev-parse命令获取本地分支所关联的远程分支的引用。

具体命令如下:

$ git branch -vv
  feature-branch  1234567 [origin/feature-branch: ahead 1] Commit message
  master         7654321 [origin/master] Another commit message

$ git rev-parse --abbrev-ref --symbolic-full-name feature-branch@{u}
origin/feature-branch

通过上述方法,可以找出一个本地分支追踪的远程分支。这样就可以满足找出本地分支追踪的远程分支的需求了。

0