NetBeans + Git

ShookTea
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 6 lat
  • Lokalizacja:Wrocław
  • Postów:629
0

Pracowałem nad pewnym projektem w NetBeans. Po kilku commitach wykonałem push na GitHub. Teraz, siedząc przy innym OS, zainstalowałem znowu NetBeansa, pobrałem kod z GitHub za pomocą narzędzia "pull" (czy jakoś tak). Wykonałem kilka kolejnych commitów, ale teraz nie mogę z drugiego komputera zrobić push - w okienku "Git Push Failed" czytam, że "Remote repository contains commits unmerged into the local branch. Open output to see more information".

Moje pytania:

  1. Czy sposób pobierania z GitHub (pull) był dobrym pomysłem? Bo szczerze, to ja dopiero pierwszy raz byłem zmuszony pobierać kod, do tej pory tylko go wysyłałem.
  2. Co robię źle, że nie mogę teraz wysłać plików na GitHub?

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 5 godzin
  • Lokalizacja:Wrocław
0

Nie możesz zrobić pull, póki nie włączysz zmian ze zdalnej gałęzi (tej na GitHubie) do swojej lokalnej. Najpierw musisz zrobić push, a dopiero potem pull.

ShookTea
Ale nie mogę push zrobić w ogóle. Zrobiłem obok drugi projekt lokalny, nie mogłem zrobić żadnego pusha przed commitem... po commicie też nie. Chyba, że czegoś nie zrozumiałem.
somekind
Piszmy w postach, nie komentarzach.
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 5 godzin
  • Lokalizacja:Wrocław
1

@ShookTea, jaki drugi projekt lokalny?

Z gitem pracuje się tak:

  1. Pobierasz kod ze zdalnego repozytorium przez pull.
  2. Edytujesz kod.
  3. Robisz commit - zmiany zapisują się do lokalnego repozytorium.
  4. Robisz push - zmiany wysyłasz do zdalnego repozytorium.

Jeżeli między ostatnim pullem a Twoim nowym pushem coś się zmieniło na zdalnym repozytorium, to musisz te zmiany pobrać do siebie znowu pullem.

ShookTea
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 6 lat
  • Lokalizacja:Wrocław
  • Postów:629
0

Zasadniczo daję jako rozwiązane, ale coś mi tu nie gra. Wcześniej zrobiłem dokładnie to samo i nie działało, a teraz wszystko jest w porządku.

W każdym razie, dziękuję.


Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

@ShookTea ale z treści twojego posta nie wynika wcale że na tym pierwszym komputerze zrobiłeś pull / fetch+merge a to jest konieczne. Bo żeby robić push musisz mieć aktualny kod z danego brancha. Jeśli w międzyczasie ktoś wrzucił zmiany do repozytorium to musisz je ściągnąć zanim wyślesz swoje. W ten sposób jest gwarancja że kod w repozytorium się przynajmniej kompiluje (o ile nie pushujesz niekompilujących się zmian :P). Gdyby nie było takiego wymagania to mógłbyś przypadkiem "nadpisać" komuś zmiany albo zrobić build break.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
somekind
Zawsze można użyć -force. :P
Shalom
Zawsze można dropnąć brancha albo całe repo i wrzucic swój kod :P
ShookTea
pobrałem kod z GitHub za pomocą narzędzia "pull" (czy jakoś tak) czy nie o to chodzi?
Shalom
Nie bo ja rozumiem że zrobiłeś pull na początku żeby mieć kod ;] A pull musisz robić zawsze kiedy na serwerze są zmiany których ty jeszcze nie masz.
ShookTea
Ja o tym wiem. Zrobiłem pull zaraz po tym, gdy zainstalowałem NetBeansa, a między pullem a pushem nie było żadnych zmian na serwerze, bo pracuję nad projektem sam.
Shalom
To nie jest możliwe ;] Skoro nie było zmian na serwerze których byś nie miał, a ty nie miałeś lokalnie zmian które nie byłyby commitowane to nie ma możliwości zebyś nie mógł zrobić push.
ShookTea
A tu surprise :D Być może wina NetBeans. Kiedyś nie pozwolił mi zrobić commita, ponieważ (uwaga!) miałem zmiany w plikach. Lokalnych oczywiście. Innym razem, zabraniał mi usuwania projektów z zainicjowanym gitem, bo stwierdzał, że nie ma uprawnień. Wszystkie pozostałe projekty znajdujące się w tym samym katalogu usuwał bez żadnych problemów :)
n0name_l
Tak sie wlasnie dzieje, jak sie nie uzywa sensownych narzedzi ;]
somekind
Ale co ma NetBeans do gita? Przecież to oddzielne narzędzia.
n0name_l
A nie wiem, nie czytalem tematu. Chcialem tylko troche pohejtowac Netbeansa :}
somekind
To było bardziej pytanie do @ShookTea, bo ten jego opis zdarzeń brzmi dla mnie strasznie...
ShookTea
Nie korzystam z Gita przez konsolę, tylko poprzez opcje dawane od NetBeansa.
somekind
Aha, czyli najwyraźniej wtyczka jest do bani. Ja Gita używam przez oddzielny program z GUI, konsolę uruchamiam rzadko, głównie po to, aby wypchnąć aplikację na Azure, albo naprawić coś (np. przenieść kilka commitów do innego brancha).
ShookTea
Gdyby wtyczka była do bani, to jeszcze w porządku. Problem polega na tym, że NetBeans ma obsługę Gita wbudowaną, bez zabawy w wtyczki. Z jednej strony ułatwia sprawę, ale z drugiej... ech. Może znowu się na Eclipse przesiądę? :D
Shalom
Odradzam. Wtyczka do gita dla eclipse (egit) ssa niemiłosiernie. Może jednak IntelliJ? :)
ShookTea
Nic nie wspomniałem o instalowaniu wtyczki :) https://windows.github.com/
somekind
@ShookTea, jeśli używasz Windowsa, to zainteresuj się GitExtensions: https://code.google.com/p/gitextensions/ Jedyne GUI do gita, które pozwala na wywoływanie wszystkich funkcji w trybie graficznym. Do tego ma czytelny interfejs pozwalający na szybkie przeglądanie zmian między gałęziami/commitami i w ogóle potrzebujący mało kliknięć do zrobienia czegokolwiek.
ShookTea
Zasadniczo, wolałbym póki co korzystać z tego narzędzia od GitHub, choćby ze względu na to, że został stworzony specjalnie pod tamtejsze serwery, jest intuicyjny i również czytelny. BTW, z wyglądu przypomina mi kafelki w Windows 8.
somekind
No jak wolisz, to tylko propozycja. Githuba nie używam na szczęście.
ShookTea
Windows 8, nie 7. Kurde.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.