2013-07-22 16 views
10

Nie jestem pewien, w jaki sposób (oddział utworzony z Egit, prawdopodobnie) skończyło z tej sekcji w moim config:Co oznacza zdalny =. w konfiguracji GIT?

[branch "master"] 
    remote = origin 
    merge = refs/heads/master 
[branch "sfc"] 
    remote = . 
    merge = refs/heads/master 
    rebase = true 

chciałbym zrozumieć. Nie jestem pewien, czy kropka w remote = . jest interpretowana jako adres URL (bieżący katalog) lub specjalna nazwa repozytorium (alias do siebie)? Czy to jest legalne/normalne/typowe, czy też powinienem się domyślić, że to jest pomieszane? Wydaje mi się dziwne, że mam "zdalną" specyfikację, która wskazuje na to samo repozytorium. Co więcej, ta gałąź rzeczywiście istnieje w odległym ... Jakie byłyby implanty tego zachowania względem pchania/ciągnięcia?

Niektórzy więcej informacji:

$ 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

Myślę, że odwołuje się do obecnego repozytorium ... spróbuj utworzyć commit i wykonaj polecenie 'git fetch sfc''? –

Odpowiedz

4

To jest dość dziwne. Poszedłem do przodu i stworzył manekinowe repo, zmieniono .git/config, aby zdalny był ., dodano kod, zatwierdzono i wciśnięto.

$ 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 

Wydaje się być uderzenie repozytorium lokalnie, co oczywiście oznacza, że ​​wyniki wsunąć git mówiąc to do tej pory.

2

Git rozwiąże to jako ścieżkę względną, podobnie jak ../../some/other/repo. W ten sposób rozwiąże katalog samego repozytorium. Ponieważ zdalny cel scalania to master, wyewidencjonowanie git push podczas sfc, po prostu spróbuje szybko przewinąć do przodu master do sfc.

Można tworzyć oddziały, jak to uruchamiając

git branch --set-upstream somebranch 

Może to, co zrobiłeś, bo zapomniał ustawić zdalny oddział jako punkt wyjścia.