Jak mogę pogodzić wolnostojącą głowę z master / origin?

Jestem nowy w kompleksach rozgałęzień Git. Zawsze pracuję nad pojedynczą gałęzią i zatwierdzam zmiany, a następnie okresowo naciskam na moje zdalne pochodzenie.

Gdzieś ostatnio zrobiłem reset niektórych plików, aby usunąć je z poczekalni zmian, a później zrobiłem rebase -i, aby pozbyć się kilku ostatnich lokalnych zmian. Teraz jestem w stanie, którego nie do końca rozumiem.

W moim obszarze roboczym, git log pokazuje dokładnie to, czego bym się spodziewał-- jestem w odpowiednim pociągu z commitami, których nie chciałem odejść, i nowe tych tam itp.

Ale właśnie wepchnąłem do zdalnego repozytorium, i co tam jest INNE-- kilka commitów, które zabiłem w rebase zostało wypchniętych, A nowych popełnionych lokalnie nie ma.

Myślę ,że "master / origin" jest oderwany od głowy, ale nie jestem w 100% jasne, co to znaczy, jak wizualizować go za pomocą narzędzi wiersza poleceń i jak to naprawić.

 1301
git
Author: Ben Zotto, 2011-04-24

24 answers

Najpierw wyjaśnijmy czym jest głowa i co ona oznacza, gdy jest odłączona.

HEAD jest symboliczną nazwą aktualnie sprawdzonego commita. Gdy głowa nie jest odłączona ("normalna"1 sytuacja: masz sprawdzoną gałąź), HEAD faktycznie wskazuje na gałąź "ref", a gałąź wskazuje na commit. Głowa jest więc "przymocowana" do gałęzi. Gdy tworzysz nowy commit, gałąź, na którą wskazuje HEAD, jest aktualizowana tak, aby wskazywała na nowy commit. HEAD follows automatycznie, ponieważ tylko wskazuje na gałąź.

  • git symbolic-ref HEAD refs/heads/master
    Gałąź o nazwie "master" jest sprawdzana.
  • git rev-parse refs/heads/master 17a02998078923f2d62811326d130de991d1a95a
    Ten commit jest bieżącą końcówką lub" głową " gałęzi master.
  • git rev-parse HEAD również daje 17a02998078923f2d62811326d130de991d1a95a
    To właśnie oznacza być "symbolicznym ref". Wskazuje na obiekt przez inne odniesienie.
    (Symboliczne refy były pierwotnie zaimplementowane jako dowiązania symboliczne, ale później zmieniono je na zwykłe pliki z dodatkowymi interpretacja tak, aby mogły być używane na platformach, które nie mają dowiązań symbolicznych.)

Mamy HEADrefs/heads/master17a02998078923f2d62811326d130de991d1a95a

Gdy HEAD jest odłączony, wskazuje bezpośrednio na commit-zamiast pośrednio wskazywać na niego przez gałąź. Możesz myśleć o oderwanej głowie jak o nienazwanej gałęzi.

  • git symbolic-ref HEAD fails with fatal: ref HEAD is not a symbolic ref
  • git rev-parse HEAD 17a02998078923f2d62811326d130de991d1a95a
    Ponieważ nie jest to symboliczne ref, musi wskazywać bezpośrednio na commit siebie.

Mamy HEAD17a02998078923f2d62811326d130de991d1a95a

Ważne jest, aby pamiętać, że jeśli commit, na który wskazuje, jest w inny sposób niezrealizowany( żaden inny ref nie może do niego dotrzeć), to stanie się" zwisający", gdy dokonasz zakupu innego commita. W końcu takie zwisające commity zostaną przycinane przez proces zbierania śmieci (domyślnie są przechowywane przez co najmniej 2 tygodnie i mogą być przechowywane dłużej przez odniesienie do HEAD ' a reflog).

1 Jest to całkowicie w porządku, aby zrobić "normalną" pracę z odłączoną głową, po prostu trzeba śledzić to, co robisz, aby uniknąć konieczności łowienia wyrzuconej historii z reflogu.


[[30]}pośrednie kroki interaktywnej rebazy są wykonywane z odłączoną głowicą(częściowo, aby uniknąć zanieczyszczenia reflog aktywnej gałęzi). Jeśli zakończysz pełną operację rebase, zaktualizuje ona oryginalną gałąź o skumulowany wynik operacji rebase i ponownie przymocuj głowę do oryginalnej gałęzi. Domyślam się, że nigdy w pełni nie ukończyłeś procesu rebase; to pozostawi ci odłączoną głowicę wskazującą na commit, który został ostatnio przetworzony przez operację rebase.

Aby wyzdrowieć z twojej sytuacji, powinieneś utworzyć gałąź, która wskazuje na commit aktualnie wskazywany przez Twoją odłączoną głowę:

git branch temp
git checkout temp

(te dwie komendy można skrócić do git checkout -b temp)

To przytwierdzi twoją głowę do nowy temp oddział.

Następnie powinieneś porównać bieżący commit (i jego historię) z normalną gałęzią, na której spodziewałeś się pracować:

git log --graph --decorate --pretty=oneline --abbrev-commit master origin/master temp
git diff master temp
git diff origin/master temp

(prawdopodobnie będziesz chciał poeksperymentować z opcjami dziennika: dodaj -p, zostaw --pretty=…, aby zobaczyć całą wiadomość dziennika, itp.)

Jeśli twoja nowa gałąź temp wygląda dobrze, możesz zaktualizować (np.) master, aby wskazać na nią:

git branch -f master temp
git checkout master

(te dwie komendy można skrócić do git checkout -B master temp)

Możesz następnie usunąć tymczasową gałąź:

git branch -d temp
W końcu prawdopodobnie będziesz chciał przeforsować przywróconą historię:]}
git push origin master

Może być konieczne dodanie --force na końcu tego polecenia, aby nacisnąć, jeśli zdalna gałąź nie może być "fast-forwarded" do nowego commita(tzn. upuściłeś lub napisałeś jakiś istniejący commit lub w inny sposób napisałeś jakiś fragment historii).

Jeśli byłeś w trakcie operacji rebase, prawdopodobnie powinieneś to posprzątać. Ty można sprawdzić, czy rebase był w trakcie procesu, szukając katalogu .git/rebase-merge/. Możesz ręcznie wyczyścić trwającą rebase, usuwając ten katalog (np. jeśli nie pamiętasz już celu i kontekstu aktywnej operacji rebase). Zazwyczaj używasz git rebase --abort, ale to powoduje dodatkowe Resetowanie, którego prawdopodobnie chcesz uniknąć(przesuwa głowę z powrotem do oryginalnej gałęzi i resetuje ją z powrotem do oryginalnego commita, co cofnie część pracy wykonanej powyżej).

 2199
Author: Chris Johnsen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-03 16:19:19

Po prostu zrób to:

git checkout master

Lub, jeśli masz zmiany, które chcesz zachować, zrób to:

git checkout -b temp
git checkout -B master temp
 526
Author: Daniel Alexiuc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-25 00:12:44

Natknąłem się na ten problem i kiedy przeczytałem na górze głosowałem na odpowiedź:

HEAD jest symboliczną nazwą aktualnie sprawdzonego commita.

Pomyślałem: Ah-ha! Jeśli HEAD jest symboliczną nazwą zatwierdzania currenlty checkout, mogę go pogodzić z master zmieniając go na master:

git rebase HEAD master

To polecenie:

  1. sprawdza master
  2. identyfikuje commity rodzica HEAD z powrotem do punktu HEAD odbiegającego od master
  3. odtwarza commity na wierzchu master

Wynik końcowy jest taki, że wszystkie commity, które były w HEAD, ale nie master, są wtedy również w master. / Align = "left" /


Odnośnie pilota:

Kilka commitów, które zabiłem w rebase ' u zostało wypchniętych, A nowych popełnionych lokalnie nie ma.

Zdalna historia nie może być już szybko przekazywana za pomocą lokalnej historii. Będziesz musiał naciskać na siłę. (git push -f) aby nadpisać zdalną historię. Jeśli masz współpracowników, zwykle ma to sens, aby skoordynować to z nimi, aby wszyscy byli na tej samej stronie.

Po naciśnięciu master do remote origin, twoja zdalna gałąź śledzenia origin/master zostanie zaktualizowana tak, aby wskazywała ten sam commit co master.

 100
Author: Dmitry Minkovsky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-27 21:38:34

Spójrz tutaj, aby uzyskać podstawowe Wyjaśnienie odłączonej głowy:

Http://git-scm.com/docs/git-checkout

Wiersz poleceń do wizualizacji:

git branch

Lub

git branch -a

Otrzymasz wynik jak poniżej:

* (no branch)
master
branch1

* (no branch) pokazuje, że jesteś w oderwanej głowie.

Mogłeś dojść do tego stanu robiąc git checkout somecommit itd. i to by cię ostrzegało:

Jesteś w stanie "oderwanej głowy". Ty może się rozejrzeć, make experimental zmiany i zatwierdzanie ich, a Ty możesz odrzuć wszelkie commity, które w tym stan bez wpływu na jakiekolwiek gałęzie dokonując kolejnej kasy.

Jeśli chcesz utworzyć nową gałąź do zachowaj utworzone commity, możesz to zrobić tak więc (teraz lub później) używając -b z polecenie kasowania ponownie. Przykład:

Git checkout - B new_branch_name

Teraz, aby dostać je na mistrza:

Zrobić git reflog lub nawet po prostu git log i zanotuj swoje commity. Teraz git checkout master i git merge commity.

git merge HEAD@{1}

Edit:

Aby dodać, użyj git rebase -i nie tylko do usuwania / zabijania zmian, których nie potrzebujesz, ale także do ich edycji. Wystarczy wspomnieć "edytuj" na liście zmian, a będziesz mógł zmienić swój commit, a następnie wydać git rebase --continue, aby przejść do przodu. To zapewniłoby, że nigdy nie wpadniesz na oderwaną głowę.

 78
Author: manojlds,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-24 18:52:42

Pobierz oddzielny commit na własną gałąź

Po prostu uruchom git checkout -b mynewbranch.

Następnie uruchom git log, a zobaczysz, że commit jest teraz HEAD w nowej gałęzi.

 30
Author: Rose Perrone,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-20 02:44:42

Jeśli masz tylko gałąź master i chcesz wrócić do "develop" lub funkcji po prostu zrób to:

git checkout origin/develop

Uwaga: sprawdzanie origin/develop .

Jesteś w stanie odłączonej głowy . Możesz się rozejrzeć, zrobić eksperymentalne zmiany i zatwierdzić je, a możesz odrzucić wszelkie zmiany wprowadzone w tym stan bez wpływu na jakiekolwiek oddziały, wykonując kolejną transakcję...

Then

git checkout -b develop

To działa:)

 19
Author: amdev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-12 08:19:55

Jeśli chcesz popchnąć aktualną odłączoną głowę (sprawdź git log przed), spróbuj:

git push origin HEAD:master

Aby wysłać Twoją odłączoną głowę do gałęzi master w origin. Jeśli twój push zostanie odrzucony, spróbuj najpierw git pull origin master pobrać zmiany z origin. Jeśli nie przejmujesz się zmianami pochodzącymi z origin i są one odrzucane, ponieważ wykonałeś jakiś celowy rebase i chcesz zastąpić origin / master swoją aktualnie odłączoną gałęzią-możesz to wymusić (-f). W przypadku utraty dostępu do poprzednich commitów, zawsze możesz uruchomić git reflog, aby zobaczyć historię ze wszystkich gałęzi.


Aby wrócić do gałęzi master, zachowując zmiany, spróbuj wykonać następujące polecenia:

git rebase HEAD master
git checkout master

Patrz: Git: "obecnie nie jest na żadnej gałęzi."Czy istnieje łatwy sposób, aby wrócić na gałąź, zachowując zmiany?

 16
Author: kenorb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:31:37

Następujące zadziałało dla mnie (używając tylko Branch master):

git push origin HEAD:master
git checkout master        
git pull
Pierwszy popycha odłączoną głowicę do odległego źródła.

Drugi przechodzi do branch master.

Trzeci odzyskuje głowę, która zostaje przywiązana do branch master.

Problemy mogą pojawić się przy pierwszym poleceniu, jeśli push zostanie odrzucony. Ale nie byłoby to już problemem odłączonej głowy, ale chodzi o to, że odłączona głowa nie jest świadoma pewnych odległych zmian.

 8
Author: Daniel Porumbel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-07 12:31:49

Jeśli jesteś całkowicie pewien, że głowa jest dobrym stanem:

git branch -f master HEAD
git checkout master

Prawdopodobnie nie możesz naciskać na pochodzenie, ponieważ twój mistrz odbiegł od pochodzenia. Jeśli jesteś pewien, że nikt inny nie używa repo, możesz force-push:

git push -f

Najbardziej przydatne, jeśli jesteś w gałęzi funkcji, której nikt inny nie używa.

 7
Author: geon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-15 11:01:13

Wszystko co musisz zrobić to 'Git checkout [branch-name]' gdzie [branch - name] to nazwa oryginalnej gałęzi, z której masz odłączony stan głowy. (Odłączony od asdfasdf) zniknie.

Więc na przykład, w gałęzi ' dev ' wypisujesz commit asdfasd14314 - >

'git checkout asdfasd14314'

Jesteś teraz w stanie odłączonej głowy

'Git branch' wyświetli coś w stylu - >

* (detached from asdfasdf)
  dev
  prod
  stage

Ale aby wyjść ze stanu głowy i wrócić do dev - >

'git checkout dev'

Oraz następnie 'Git branch' wyświetli listę- >

* dev
  prod
  stage

Ale To jest oczywiście jeśli nie zamierzasz trzymać żadnych zmian z dala od stanu głowy, ale ja robię to często, nie zamierzam wprowadzać żadnych zmian, ale po prostu spojrzeć na poprzedni commit

 4
Author: Adam Freeman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-17 19:49:18

Jak zauważył Chris, miałem następującą sytuację

git symbolic-ref HEAD fails with fatal: ref HEAD is not a symbolic ref

Jednakże git rev-parse refs/heads/master wskazywało na dobry commit, z którego mogłem odzyskać (w moim przypadku ostatni commit i możesz go zobaczyć używając git show [SHA]

Zrobiłem wiele brudnych rzeczy po tym, ale to, co wydaje się być naprawione, jest po prostu,

git symbolic-ref HEAD refs/heads/master

/ Align = "left" /
 4
Author: Varun Garg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-11 10:16:48

Właśnie natknąłem się dziś na ten problem i jestem prawie pewien, że rozwiązałem go robiąc:

git branch temp
git checkout master
git merge temp
Byłem na moim komputerze służbowym, kiedy wymyśliłem, jak to zrobić, a teraz mam ten sam problem na moim komputerze osobistym. Więc będę musiał poczekać do poniedziałku, kiedy wrócę do pracy komputera, aby zobaczyć, jak dokładnie to zrobiłem.
 4
Author: adamwineguy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-20 15:24:44

Miałem ten sam problem i rozwiązałem go, przechodząc przez następujące kroki.

Jeśli chcesz zachować swoje zmiany

  1. najpierw musisz uruchomić git checkout master polecenie, aby umieścić cię z powrotem do master branch.
  2. Jeśli chcesz zachować swoje zmiany po prostu uruchom git checkout -b changes i git checkout -B master changes

Jeśli nie potrzebujesz zmian

  1. Aby usunąć wszystkie Nie śledzone pliki z gałęzi Uruchom git clean -df.

  2. Więc musisz wyczyść wszystkie niezakłócone zmiany w repozytorium. Aby to zrobić, musisz uruchomić git checkout --

  3. Na koniec musisz umieścić swoją gałąź z powrotem do gałęzi master używając polecenia git checkout master.

 3
Author: Aravinda Meewalaarachchi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-27 11:53:34

Miałem dzisiaj taki problem, w którym zaktualizowałem podmoduł, ale nie było go na żadnej gałęzi. Już się zobowiązałem, więc chowanie, chowanie, chowanie nie zadziała. Skończyło się na tym, że wiśnie zbierałem odwiązaną głowę. Więc zaraz po tym, jak popełniłem (gdy push nie powiódł się), zrobiłem:

git checkout master
git cherry-pick 99fe23ab

Moje myślenie poszło: jestem na oderwanej głowie, ale chcę być na mistrzu. Zakładając, że Mój stan oderwania nie różni się zbytnio od master, gdybym mógł zastosować mój commit do master, byłbym ustawiony. To jest dokładnie to, co robi cherry-pick.

 3
Author: prewett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-11 05:58:54

Zamiast robić git checkout origin/master

Just do git checkout master

Następnie git branch potwierdzi Twoją gałąź.

 2
Author: Goran Ch.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-05 14:08:07

Jeśli wykonałeś jakieś commity na szczycie master i chcesz po prostu "połączyć wstecz" master tam (tzn. chcesz master wskazać na HEAD), jednolinijkowy będzie:

git checkout -B master HEAD
  1. tworzy nową gałąź o nazwie master, nawet jeśli już istnieje (co jest jak przenoszenie master i tego chcemy).
  2. nowo utworzona gałąź jest ustawiona na HEAD, czyli tam, gdzie jesteś.
  3. nowa gałąź jest sprawdzona, więc jesteś na master potem.

Okazało się to szczególnie przydatne w przypadku pod-repozytoriów, które również często znajdują się w stanie odłączonym.

 2
Author: quazgar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-07 14:14:03

Dla mnie było to tak proste, jak ponowne usunięcie lokalnej gałęzi, ponieważ nie miałem żadnych lokalnych commitów, które chciałem wypchnąć:

Więc zrobiłem:

git branch -d branchname

I jeszcze raz sprawdzamy gałąź:

git checkout branchname
 2
Author: Klaus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-20 15:25:24

W prostych słowach, odłączony stan głowy oznacza nie jesteś sprawdzany do głowy (lub końcówki) żadnej gałęzi .

Zrozumieć za pomocą przykładu

Gałąź w większości przypadków jest sekwencją wielu commitów, takich jak:

Commit 1: master-- > branch_HEAD (123be6a76168aca712aea16076e971c23835f8ca)

Commit 2: master-->123be6a76168aca712aea16076e971c23835f8ca-->branch_HEAD(100644a76168aca712aea16076e971c23835f8ca)

Jak widać powyżej w przypadku sekwencji commitów, twoja gałąź wskazuje na najnowszy commit. W takim przypadku, jeśli dokonasz transakcji, aby zatwierdzić 123be6a76168aca712aea16076e971c23835f8ca, będziesz w stanie odłączonym od głowy, ponieważ głowa Twojej gałęzi wskazuje na 100644a76168aca712aea16076e971c23835f8ca i technicznie jesteś wymeldowali się na czele żadnego oddziału. Stąd jesteś w stanie oderwania głowy.

Wyjaśnienie Teoretyczne

W tym blogu jest to wyraźnie stwierdzające repozytorium Git jest drzewem commitów, z każdym commitem wskazującym na jego przodka z każdym wskaźnikiem commita jest aktualizowany i te wskaźniki do każdej gałęzi są przechowywane w .podkatalogi git / refs. Tagi są przechowywane w .git / refs / tags i Branch są przechowywane w .git / refs / heads. Jeśli spojrzysz na któryś z plików, zobaczysz, że każdy tag odpowiada pojedynczemu plikowi, z 40-znakowym Hashem commit i jak wyjaśnili powyżej @Chris Johnsen i @Yaroslav Nikitenko, możesz sprawdzić te odniesienia.

 1
Author: Keshav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-20 15:28:12

Weszłam w naprawdę głupi stan, wątpię, żeby ktokolwiek inny uznał to za przydatne.... ale na wszelki wypadek

git ls-remote origin
0d2ab882d0dd5a6db93d7ed77a5a0d7b258a5e1b        HEAD
6f96ad0f97ee832ee16007d865aac9af847c1ef6        refs/heads/HEAD
0d2ab882d0dd5a6db93d7ed77a5a0d7b258a5e1b        refs/heads/master

Które ostatecznie naprawiłem za pomocą

git push origin :HEAD
 0
Author: KCD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-18 03:14:19

To działało dla mnie doskonale:

1.git stash aby zapisać lokalne modyfikacje

Jeśli chcesz odrzucić zmiany
git clean -df
git checkout -- .
git clean usuwa wszystkie Nie śledzone pliki (uwaga: podczas gdy nie usuwa ignorowanych plików wymienionych bezpośrednio w .gitignore, może usuwać ignorowane pliki znajdujące się w folderach), a git checkout czyści wszystkie nieakceptowane zmiany.

2.git checkout master Aby przełączyć się na główną gałąź (zakładając, że chcesz użyć master)
3.git pull aby wyciągnąć ostatni commit z gałęzi master
4.git status aby sprawdzić wszystko wygląda świetnie

On branch master
Your branch is up-to-date with 'origin/master'.
 0
Author: cepix,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-24 07:25:34

Kiedy osobiście znajduję się w sytuacji, kiedy okazuje się, że dokonałem pewnych zmian, gdy nie jestem w master (tzn. HEAD jest odłączony tuż nadmaster i nie ma commitów pomiędzy) stashing może pomóc:

git stash # HEAD has same content as master, but we are still not in master
git checkout master  # switch to master, okay because no changes and master
git stash apply  # apply changes we had between HEAD and master in the first place
 0
Author: Ben Usman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-11 21:03:12

W moim przypadku uruchomiłem git status i zobaczyłem, że mam kilka Nie śledzonych plików w moim katalogu roboczym.

Aby rebase zadziałał, po prostu musiałem je wyczyścić(ponieważ nie potrzebowałem ich).

 0
Author: falsarella,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-20 15:25:47

Jeśli używasz EGit w Eclipse: Załóżmy, że twój mistrz jest Twoją główną gałęzią rozwoju

  • zatwierdź zmiany do gałęzi, Zwykle nowej
  • następnie wyciągnij z pilota
  • następnie kliknij prawym przyciskiem myszy węzeł projektu, wybierz zespół, a następnie wybierz Pokaż historię
  • następnie kliknij prawym przyciskiem myszy master, wybierz Sprawdź
  • jeśli Eclipse mówi ci, że są dwa mastery jeden lokalny jeden zdalny, wybierz zdalny

Po tym powinieneś być w stanie połącz się z origin-master.

 0
Author: Junchen Liu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-20 18:57:39
git checkout checksum  # You could use this to peek previous checkpoints
git status # You will see HEAD detached at checksum
git checkout master # This moves HEAD to master branch
 -2
Author: David Yang,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-20 15:26:36