Kla*_*urn 6 git branch remote-branch git-remote git-branch
老实说,找不到任何详细的输出文档git remote show(当然不在手册页上)
特别是,Local可以理解这些部分的清晰,准确的解释.
我发现令人困惑的一个例子:
这里我有两个遥控器,klas和origin以及它们产生的输出:
> git remote show klas
* remote klas
Fetch URL: ..\klasrepo
Push URL: ..\klasrepo
HEAD branch: master
Remote branches:
experiment tracked
feature tracked
master tracked
pu tracked
stashbranch tracked
Local branch configured for 'git pull':
pu merges with remote pu
Local refs configured for 'git push':
experiment pushes to experiment (fast-forwardable)
feature pushes to feature (fast-forwardable)
master pushes to master (fast-forwardable)
pu pushes to pu (up to date)
> git remote show origin
* remote origin
Fetch URL: C:/Temp/git/.\barerepo.git
Push URL: C:/Temp/git/.\barerepo.git
HEAD branch: experiment
Remote branches:
experiment tracked
master tracked
Local branches configured for 'git pull':
experiment merges with remote experiment
master rebases onto remote master
Local refs configured for 'git push':
experiment pushes to experiment (up to date)
master pushes to master (fast-forwardable)
Run Code Online (Sandbox Code Playgroud)
请注意,两者都列出了实验和主数据.那是什么意思?我已经配置了master和experiment来分别跟踪origin/master和origin/experiment(和pu来跟踪klas/pu). local refs configured for 'git push'
我的本地功能分支没有设置为跟踪任何内容,但仍然列在local refs configured for 'git push'(唯一的连接似乎是相同的名称,另一个非跟踪分支,foo,未提及).git push虽然在功能给予fatal: The current branch feature has no upstream branch.- 几乎"快速转发".
似乎列出的本地分支的标准local refs configured for 'git push'是,恰好存在一个具有相同名称的远程分支?
以供参考:
> git branch -vva
experiment 0cf7b2a [origin/experiment] added rand content 82 to .\rand_content.txt
* feature 4b25f46 added rand content 62 to bar.txt
foo 40aee50 added rand content 17 to .\rand_content.txt
master 4b25f46 [origin/master] added rand content 62 to bar.txt
pu 44ad10b [klas/pu] added rand content 51 to doo.txt
remotes/klas/experiment 1f4e89b app
remotes/klas/feature 884e953 added rand content 80 to bar.txt
remotes/klas/master 57877c1 added in tobias repo
remotes/klas/pu 44ad10b added rand content 51 to doo.txt
remotes/klas/stashbranch 8678cf0 added rand content 44 to .\rand_content.txt
remotes/origin/HEAD -> origin/master
remotes/origin/experiment 0cf7b2a added rand content 82 to .\rand_content.txt
remotes/origin/master 4b25f46 added rand content 62 to bar.txt
> git config --list --local | select-string 'branch|remote'
remote.origin.url=C:/Temp/git/.\barerepo.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
branch.master.rebase=true
remote.klas.url=..\klasrepo
remote.klas.fetch=+refs/heads/*:refs/remotes/klas/*
branch.experiment.remote=origin
branch.experiment.merge=refs/heads/experiment
branch.pu.remote=klas
branch.pu.merge=refs/heads/pu
> git --version
git version 1.8.1.msysgit.1
Run Code Online (Sandbox Code Playgroud)
这似乎是 Git 1.8.1 中的一个错误。
浏览 Git 源代码(特别是remote.c和builtin/remote.c),“为‘git Push’配置的本地引用”下的列表计算如下:
.git/remotes/<remotename>(过时的配置文件;请参阅git help repository-layout).git/branches/<branchname>(另一个过时的配置文件)remote.<remotename>.push配置项:唯一的推送 refspec请注意,上述算法不关注branch.<branchname>.remote、branch.<branchname>.merge或push.default。
在典型的使用模式下,上述算法中的步骤 #1 将永远不会找到任何配置的 refspec,因此:将被使用。该 refspec 是一个简单的匹配 refspec,因此在典型用法中,如果本地和远程存储库中都有指定的分支,则git remote show <remotename>始终会打印。<branchname> pushes to <branchname><branchname>
| 归档时间: |
|
| 查看次数: |
1025 次 |
| 最近记录: |