Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[GIT] Problem ze śledzeniem zdalnej gałęzi.

Ostatnio zmodyfikowano 2013-06-29 23:56
Autor Wiadomość
Boromir
Temat założony przez niniejszego użytkownika
[GIT] Problem ze śledzeniem zdalnej gałęzi.
» 2013-06-26 21:09:54
Może zamiast się rozpisywać:

Przygotowanie repo początkowego u jednego z userów:

$ pwd
/home/user/git/kpm
$ mkdir Zdalny Piotr Kuba Adam
$ ls
Adam Kuba Piotr Zdalny
$ cd Piotr
$ git init
Initialized empty Git repository in /home/user/git/kpm/Piotr/.git/
$ touch readme.txt
$ git add -A
$ git commit -m "Start. Adding readme file."
...
$ git status -s
$ git log --oneline
99cc6aa Adding readme file.
Czyli wszystko wygląda ok.

Tworzenie surowego zdalnego repo.

$ pwd
/home/user/git/kpm/Zdalny
$ git clone --bare ../Piotr .
Cloning into bare repository '.'...
done.
$ ls
branches config description HEAD hooks info objects packed-refs refs
$ git log --oneline
99cc6aa Adding readme file.

Czyli posiadam ładne repo zdalne. Teraz trzeba ustawić zdalne repo u Piotra.

$ pwd
/home/user/git/kpm/Piotr
$ git remote add origin ../Zdalny
$ git remote -v
origin ../Zdalny (fetch)
origin ../Zdalny (push)
$ git branch -a
* master
$ git branch --set-upstream master origin/master
The --set-upstream flag is deprecated and will be removed. Consider using --track or --set-upstream-to
fatal: Not a valid object name: 'origin/master'.

Pytania:
Niestety nie mogę śledzić gałęzi zdalnej. Dlaczego? I jak rozwiązać ten problem? Dodatkowo czy ktoś jest w stanie szybko napisać czym się różnic --track od --set-upstream-to?

Teraz jak pisałem ten przykład zdarzyło się coś dziwnego.

$ git push
warning: push.default is unset; its ...
...
...
Everything up-to-date
$ touch ala.txt
$ git add -A
$ git commit -m "ala"
...
$ git status -s
$ git push
warning: push default is unset; ...
...
...
Counting objects: 3, done.
Total 2 (delta 0), reused 0 (delta 0)
To ../Zdalny
99cc6aa..b1ed554 master -> master
$ git branch -a
* master
remotes/oriigin/master
$ git branch --set-upstream master origin/master
The --set-upstream flag is deprecated and will be removed. Consider using --track or --set-upstream-to
Branch master set up to track remote branch from origin.

Dalsze pytania:
Dlaczego dodał się commit mimo to, że nie zostało ustawione śledzenie?
Dlaczego do gałęzi nagle dodała się gałęź zdalna, mimo że jej nie dodawałem?
Dlaczego później udało się uruchomić polecenie ustawiania gałężi zdalnej?

Dodam jeszcze, że dla

$ pwd
/home/user/git/kmp/Kuba
$ git clone ../Zdalny .
Cloning into '.'...
done.
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
$
Czyli nie jest to to samo co u użytkownika Piotr. Chciałbym, żeby Piotr dysponował takimi ustawieniami jak Kuba po kolonwaniu repo. Niestety nie wiem jak.
P-86285
DejaVu
» 2013-06-29 19:57:00
Chyba z gitem nikt nie pracuje tutaj w taki sposób w jaki Ty byś chciał sobie pracę zorganizować... ciekawy temat, fajnie gdyby został przez kogoś pociągnięty.
P-86571
Boromir
Temat założony przez niniejszego użytkownika
» 2013-06-29 23:56:00
Pracować jak pracować. Gdyby to była sprawa życia i śmierci to można usnąć folder .git u Piotra a potem sklonowac repo z folderu Zdalny i automatycznie uzyskać śledzenie gałęzi. Efekt byłby właśnie taki jak chcę osiągnąć. Jednak to nie będzie ładne wyjście wykazujące się zrozumieniem tematu :)

Ogólnie, nie wydaje mi się, żeby ten sposób pracy był inny niż standardowy. Dla Gita to żadna różnica czy commity są wysyłane z katalgów Kuba, Adam, Piotr czy z różnych adresów i czy zdalne repo jest podawane jako URL czy ścieżka do plików.

Taka lokalna wersja tworzy przyjemne środowisko do nauki łączenia gałęzi i pracy w środowisku używanym przez wielu ludzi.

A żebym nie zapomniał :) Zdaje się, że problem rozwiązałem.

Aby Piotra (protoplastę projektu) ustawić jak resztę należy (w tym przypadku):


$ git remote add origin adres
$ git fetch origin master:refs/remotes/origin/master
$ git branch --set-upstream master origin/master
$ git reset --hard HEAD

Oraz coś czego nie ma w kursach, na które patrzyłem, a różni wynik polecenia
git branch -a
 dla Piotra i Kuby to


git remote set-head origin master

Wtedy Piotr dysponuje tymi samymi ustawieniami repo co użytkownik po zwykłym klonowaniu. Przynajmniej tak mi się wydaje.



P-86590
« 1 »
  Strona 1 z 1