Что означает remote =. в GIT config?
Я не уверен, как (ветвь создана с EGit, возможно). Я закончил этот раздел в моей конфигурации:
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "sfc"]
remote = .
merge = refs/heads/master
rebase = true
Я хотел бы это понять. Я не уверен, что точка в remote = .
интерпретируется как url (текущий каталог) или специальное имя репозитория (псевдоним для меня)? Является ли это законным/нормальным/типичным, или я должен догадаться, что это испорчено? Мне кажется странным иметь спецификацию "remote", которая указывает на тот же репозиторий. Более того, эта ветвь действительно существует в удаленном... Каковы были бы последствия этого для поведения push/pull?
Дополнительная информация:
$ git remote show origin
* remote origin
Fetch URL: ssh://[email protected]/var/gitrep/zzz.git
Push URL: ssh://[email protected]/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...
Ответы
Ответ 1
Это довольно странно. Я пошел дальше и создал фиктивный репо, изменил .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
Кажется, он локально попадает в репозиторий, что, конечно же, означает, что нажатие приводит к тому, что git говорит об этом.
Ответ 2
Git разрешит это как относительный путь, точно так же, как ../../some/other/repo
. Таким образом, он разрешит каталог самого репозитория. Поскольку целью удаленного слияния является master
, выполняется запуск git push
, в то время как sfc
проверяется, просто попробуйте ускорить перемотку master
в sfc
.
Вы можете создать такие ветки, запустив
git branch --set-upstream somebranch
Возможно, это то, что вы сделали, потому что вы забыли установить удаленную ветку в качестве отправной точки.