我不确定如何(用EGit创建分支,可能)我在我的配置中以此部分结束:
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "sfc"]
remote = .
merge = refs/heads/master
rebase = true
Run Code Online (Sandbox Code Playgroud)
我想明白这一点.我不确定dot in remote = .是否被解释为url(当前目录)或特殊的存储库名称(我自己的别名)?这是合法/正常/典型,还是我猜这是搞砸了?有一个指向同一个存储库的"远程"规范让我觉得很奇怪.此外,该分支确实存在于遥控器中......这对于推/拉行为的含义是什么?
更多信息:
$ git remote show origin
* remote origin
Fetch URL: ssh://git@10.0.0.3/var/gitrep/zzz.git
Push URL: ssh://git@10.0.0.3/var/gitrep/zzz.git
HEAD branch: master
Remote branches:
master tracked
sfc tracked
Local branch configured for 'git pull':
master merges with remote master
Local refs configured for 'git push':
master pushes to master (fast-forwardable)
sfc pushes to sfc (up to date)
$ git branch -vv
* master f394d8b [origin/master: ahead 1] Bla blah...
sfc 8065309 [master: behind 89] Bla blah...
Run Code Online (Sandbox Code Playgroud)
这很奇怪。我继续创建了一个虚拟存储库,更改.git/config为远程 be .,添加了一些代码,提交并推送。
$ git checkout weird
$ touch nothing
$ git add nothing
$ git commit -a -m "test"
[sup 031541e] test
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 nothing
$ git push
fatal: The upstream branch of your current branch does not match
the name of your current branch. To push to the upstream branch
on the remote, use
git push . HEAD:master
To push to the branch of the same name on the remote, use
git push . weird
$ git push . weird
Everything up-to-date
Run Code Online (Sandbox Code Playgroud)
它似乎正在本地访问存储库,这当然意味着推送结果会导致 git 说它是最新的。