jak używam git push origin HEAD:XXXXXX to tworzy mi osobny branch który później musze mergować. Tak jak to jest pokazane na zalaczonym skreenie. Jak wypchnac commita zeby wszystko szło po lini master??
Lokalne repozytorium w "detached HEAD state"
- Rejestracja: dni
- Ostatnio: dni
- Postów: 119
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
- Postów: 13042
Po prostu git push - ew. za pierwszym razem git push --set-upstream origin/master (zakładając, że Twój remote nazywa się origin) i potem samo git push za kolejnymi razami.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 119
Jak używam git push to mam nastepujacy komunikat

- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
- Postów: 13042
Jesteś w tzw. detached head state, czyli prawdopodobnie zrobiłeś git commit hash-commitu bądź git commit origin/master, przez co obecnie znajdujesz się jak gdyby "na commicie, ziemi niczyjej", a nie "na branczu" (wyobrażenie sobie tego zajmuje chwilę :-P).
tl;dr użyj git switch master - to powinno utworzyć kopię origin/master lokalnie u Ciebie (pod nazwą master) i automatycznie zrobić checkout na niego
- Rejestracja: dni
- Ostatnio: dni
- Postów: 119
wpisałem i mnie przerzuciło na master. Ale jak wpisuje git push to mam nastepujacy komunikat:

Dobra zrobiłem pull i teraz działa
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
- Postów: 13042
Twoje lokalne master jest w tyle za origin/master (tj. robiąc pusza bez tego zabezpieczenia mógłbyś nadpisać zmiany, które ktoś inny wrzucił do repo w międzyczasie) - zrób git pull --rebase (to wciągnie zmiany z zewnętrznego repozytorium do Twojego repozytorium i "wyrówna" brancz na którym obecnie się znajdujesz).
- Rejestracja: dni
- Ostatnio: dni
- Postów: 119
w jednym projekcie git switch master działa super, a w drugim projekcie wyrzuca mi błąd:

- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
- Postów: 13042
Cóż, akurat ten komunikat brzmi całkiem czytelnie :-)
Usuń te pliki i spróbuj ponownie, a na przyszłość nie commituj plików w stylu .pyc do repozytorium (poszukaj za rzeczami w stylu python typical gitignore).
- Rejestracja: dni
- Ostatnio: dni
- Postów: 119
no właśnie mam dodane do .gitignore żeby ignorowalo te pliki a i tak mi dodaje. nie wiem czemu. Ale i tak mi pomogles super. Dziekuje
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
- Postów: 13042
Jeśli najpierw dodałeś pliki do repozytorium za pomocą git add, a dopiero potem utworzyłeś .gitignore, to te dodane uprzednio pliki i tak zostaną w repozytorium (w myśl tego, że Git nie usuwa rzeczy sam z siebie) - musisz te ekstra pliki dopiero usunąć ręcznie (rm albo git rm) i zrobić commita.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 119
Jak wpisuje git switch master to przerzuca mi do 6 od tyłu commita w tym 2 projekcie. Także to jest dawno nieaktualny comit. Jak ustawic zeby przerzucało na ten ostatni?
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
- Postów: 13042
Zrób git fetch i pokaż git status.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 119

- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
- Postów: 13042
Oki, i jak wpisujesz git switch master to co się pokazuje?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 119

- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
- Postów: 13042
A ten tego, próbowałeś usuwać te pliki i ponowić git switch master?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 119
Przerzuca mi na commita 6 od końca.

- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
- Postów: 13042
Hmm, skąd to przypuszczenie? (i skąd wiesz, że to akurat szósty od końca?)
- Rejestracja: dni
- Ostatnio: dni
- Postów: 119
Patryk27 napisał(a):
Hmm, skąd to przypuszczenie? (i skąd wiesz, że to akurat szósty od końca?)
bo sprawdzam w git log
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
- Postów: 13042
I co tam widzisz konkretnie?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 119
przerzuca mi na commit o nazwie "UPGRADE" po wpisaniu
git switch master

- Rejestracja: dni
- Ostatnio: dni
- Postów: 10227
Ja to rozumiem tak, że w pewnym momencie przełączyłeś się niechcący na detached head state (tak jak pisał @Patryk27), pewnie jakiś zły checkout, albo jesteś w połowie rebase'a. Zacząłeś robić commity będąc w tym detached statcie, ale nie zdawałeś sobie z tego sprawy i potem nie mogłęś ich wypchnąć na mastera, dostałeś komunikat, ale niepoprawnie go zinterpretowałeś, i wrzuciło Ci Twój state na inny branch, Twoje commity nadal są w tym detached head state, a lokalny branch masz 6 commitów wstecz. Dodatkowo masz niescommitowane pliki, których być może chcesz lub nie chcesz (możliwe że zmiany w .gitignore się cofnęły i git już nie wie że one są ignored), i to uniemożliwia Ci robienie checkoutów, bo by się nadpisały.
Ja bym na Twoim miejscu zrobił tak:
git add . #dodaj wszystkie pliki jakie masz
git commit -m "WIP" # zcommituj wszystkie pliki jakie masz
git checkout -B temporary # zrob tymczasowy branch
git checkout master # wróć na lokalny master
git reset temporary --hard # ustaw lokalnego mastera na branch tymczasowy
git branch -d temporary # usuń brancz tymczasowy
Jeśli oczywiście dobrze zinterpretowałem co napisałeś. To wygląda tak jakbyś nie do końca wiedział co robisz.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 10227
hubertsuder napisał(a):
Jak używam git push to mam nastepujacy komunikat
Nie rób tego co tam jest napisane. Tam jest opisane, jak wypchnąć commit in detached state na remote'a, ale Ty nie chcesz tego robić. Ty chcesz wrzucić commity na brancha, tylko nie zdajesz sobie sprawy z tego że jesteś w detached state.
Jak widzisz taki komunikat to zauważ co jest w pierwszej linijce: fatal: Nie jesteś teraz na gałęzi. Na tym się skup - weź wdech, i zastanów się czemu nie jesteś na branchu. Powinieneś być, tak jak mówi @Patryk27 , powinieneś się przełączyć na branch, bo jesteś w detached state.
Ale oczywiście, jak się "po prostu" przełączysz, to stracisz te commity które zrobiłeś + możesz (i pewnie masz) jakieś niezacommitowane pliki. Nie wiem jak się znalazłeś w detached state, możliwe że jakiś nieudany merge albo jesteś w trakcie rebase'a. Nie wiem.
Jeśli nie jesteś w trakcie rebase'a, to myślę że powinieneś zrobić
git checkout -B master
Wtedy ustawisz swój lokalny branch na aktualny commit, i potem po prostu
git push
- Rejestracja: dni
- Ostatnio: dni
- Postów: 119
Riddle napisał(a):
Ja to rozumiem tak, że w pewnym momencie przełączyłeś się niechcący na detached head state (tak jak pisał @Patryk27), pewnie jakiś zły checkout, albo jesteś w połowie
rebase'a. Zacząłeś robić commity będąc w tym detached statcie, ale nie zdawałeś sobie z tego sprawy i potem nie mogłęś ich wypchnąć na mastera, dostałeś komunikat, ale niepoprawnie go zinterpretowałeś, i wrzuciło Ci Twój state na inny branch, Twoje commity nadal są w tym detached head state, a lokalny branch masz 6 commitów wstecz. Dodatkowo masz niescommitowane pliki, których być może chcesz lub nie chcesz (możliwe że zmiany w.gitignoresię cofnęły i git już nie wie że one są ignored), i to uniemożliwia Ci robienie checkoutów, bo by się nadpisały.Ja bym na Twoim miejscu zrobił tak:
git add . #dodaj wszystkie pliki jakie masz git commit -m "WIP" # zcommituj wszystkie pliki jakie masz git checkout -B temporary # zrob tymczasowy branch git checkout master # wróć na lokalny master git reset temporary --hard # ustaw lokalnego mastera na branch tymczasowy git branch -d temporary # usuń brancz tymczasowyJeśli oczywiście dobrze zinterpretowałem co napisałeś. To wygląda tak jakbyś nie do końca wiedział co robisz.
już naprawiłem. Jestem na galezi master i git push wypycha mi normalnie. Zrobilem to co powiedziales.