Ok, po obejrzeniu tego postu przez PJ Hyetta , postanowiłem przejść do końca i przejść z Gitem .
Potrzebuję więc praktycznego przewodnika dla początkujących po Git. „Początkujący” jest definiowany jako ktoś, kto wie, jak obsługiwać swój kompilator, rozumie do pewnego stopnia, czym jest Makefile , i dotknął kontroli źródła, nie rozumiejąc go zbyt dobrze.
„Praktyczne” definiowanie, jako że ta osoba nie chce szczegółowo omawiać tego, co robi Git w tle, a nawet nie obchodzi go (ani nie wie), że jest rozpowszechniany. Twoje odpowiedzi mogą wskazywać na możliwości, ale staraj się skierować do początkującego, który chce przechowywać „główne” repozytorium na „serwerze”, którego kopie zapasowe są zabezpieczone i bezpieczne, i traktuj swoje lokalne repozytorium jedynie jako „klient”.
Więc:
Instalacja / konfiguracja
- Jak zainstalować Git
- Jak skonfigurować Git? Spróbuj objąć Linuksa, Windowsa i Maca, myśląc o sposobie myślenia „klient / serwer”.
- Jak tworzysz nowy projekt / repozytorium?
- Jak skonfigurować go tak, aby ignorował pliki (.obj, .user itp.), Które tak naprawdę nie są częścią bazy kodu?
Praca z kodem
- Jak uzyskać najnowszy kod?
- Jak sprawdzić kod?
- Jak zatwierdzasz zmiany?
- Jak widzisz, co jest niezaangażowane, lub status swojej obecnej bazy kodów?
- Jak niszczysz niechciane zobowiązania?
- Jak porównać dwie wersje pliku lub bieżący plik i poprzednią wersję?
- Jak widzisz historię zmian pliku?
- Jak radzisz sobie z plikami binarnymi (na przykład dokumentami Visio lub środowiskami kompilatora)?
- Jak scalić pliki zmienione w „tym samym czasie”?
- Jak cofnąć (przywrócić lub zresetować) zatwierdzenie?
Tagowanie, rozgałęzianie, wydania, linie bazowe
- Jak „oznaczyć” „tagować” lub „zwolnić” konkretny zestaw poprawek dla określonego zestawu plików, aby zawsze móc pobrać go później?
- Jak wyciągnąć określone „wydanie”?
- Jak się rozgałęziasz?
- Jak łączyć gałęzie?
- Jak rozwiązywać konflikty i dokończyć scalanie?
- Jak łączysz części jednej gałęzi z drugą?
- Co to jest rebasing?
- Jak śledzić zdalne oddziały?
- Jak mogę utworzyć oddział w zdalnym repozytorium?
- Jak usunąć gałąź ze zdalnego repozytorium?
- Przykłady przepływu pracy Git
Inny
- Opisz i połącz z dobrym GUI, wtyczką IDE itp., Które sprawiają, że Git jest zasobem innym niż wiersz poleceń, ale proszę wymienić jego ograniczenia, jak również dobre.
- msysgit - wieloplatformowy, dołączony do Git
- gitk - przeglądarka historii dla wielu platform, dołączona do Git
- gitnub - Mac OS X
- gitx - przeglądarka historii Mac OS X.
- smartgit - wieloplatformowy, komercyjny, beta
- tig - graficzny interfejs użytkownika dla systemu Linux
- qgit - GUI dla Windows, Linux
- Rozszerzenia Git - pakiet dla systemu Windows, zawiera przyjazny interfejs GUI
- Jakieś inne typowe zadania, które powinien znać początkujący?
- Jak efektywnie pracować z zestawem repozytorium subversion jako moim źródłem kontroli źródła?
Inne referencje dla początkujących Git
- Poradnik Git
- Git book
- Git Magic
- gitcasty
- Przewodniki GitHub
- Samouczek Git
- Progit - książka Scott Chacon
- Git - SVN Crash Course
- Git od dołu do góry
- Przygotuj się
- gitref.org
- Git ściągawka wizualna
Zagłębiam się w Gita
Od czasu do czasu przejrzę wpisy i uporządkuję je, aby miały spójny wygląd / wygląd i łatwo zeskanować listę - zachęcamy do zapoznania się z prostym nagłówkiem - krótkie wyjaśnienie - lista instrukcji - gotchas i dodatkowe informacje ”. Odsyłam również do wpisów z powyższej listy punktowanej, aby łatwo je później znaleźć.
źródło
rm -rf .git
zatrzeć bazę danych git.git status
aby upewnić się, że jesteś w repozytorium: ma to jedną gotcha: jeśli masz ustawioną zmienną środowiskową $ GIT_DIR w bieżącej powłoce, git zignoruje twoją bieżącą lokalizację i użyje repozytorium w $ GIT_DIR. Powinienem wiedzieć, że straciłem wczoraj godzinę.GUI dla git
Git GUI
Dołączone do git - Uruchom
git gui
z wiersza poleceń, a instalator msysgit systemu Windows doda go do menu Start.Git GUI może zrobić większość tego, co musisz zrobić z git. W tym zmiany etapów, konfigurowanie git i repozytoriów, wypychanie zmian, tworzenie / pobieranie / usuwanie oddziałów, scalanie i wiele innych rzeczy.
Jedną z moich ulubionych funkcji są skróty „etap linii” i „etap przystawki” w menu prawym przyciskiem myszy, które umożliwiają zatwierdzanie określonych części pliku. Możesz to samo osiągnąć
git add -i
, ale uważam, że jest łatwiejszy w użyciu.Nie jest to najładniejsza aplikacja, ale działa na prawie wszystkich platformach (opartych na Tcl / Tk)
Zrzuty ekranu | screencast
GitK
Dołączone również z git. Jest to przeglądarka historii git, która umożliwia wizualizację historii repozytorium (w tym gałęzi, kiedy są tworzone i łączone). Możesz przeglądać i wyszukiwać zatwierdzenia.
Ładnie komponuje się z git-gui.
Gitnub
Aplikacja Mac OS X. Głównie odpowiednik
git log
, ale ma pewną integrację z githubem (np. „Widok sieci”).Wygląda ładnie i pasuje do Mac OS X. Możesz przeszukiwać repozytoria. Największą krytyką Gitnub jest to, że pokazuje historię w sposób liniowy (pojedyncza gałąź na raz) - nie wizualizuje rozgałęzień i scalania, co może być ważne w przypadku git, chociaż jest to planowana poprawa.
Pobierz linki i screeny, dziennik zmian | repozytorium git
GitX
Zamierza być „gitk clone dla OS X”.
Może wizualizować nieliniową historię rozgałęziania, wykonywać zatwierdzenia, przeglądać i wyszukiwać zatwierdzenia, a także ma inne fajne funkcje, takie jak możliwość „szybkiego podglądu” dowolnego pliku w dowolnej wersji (spacja w widoku listy plików), eksportowania dowolnego pliku (przeciągnij i upuść).
Jest znacznie lepiej zintegrowany z OS X niż
git-gui
/gitk
i jest szybki i stabilny nawet przy wyjątkowo dużych repozytoriach.Oryginalny pieter repozytorium git nie był ostatnio aktualizowany (ponad rok w momencie pisania). Bardziej aktywnie utrzymywana gałąź jest dostępna w Brotherbard / gitx - dodaje „pasek boczny, pobieranie, ciągnięcie, pchanie, dodawanie zdalne, łączenie, wybieranie wiśniowe, rebase, klonowanie, klonowanie do”
Pobierz | Zrzuty ekranu | repozytorium git | widelec bratbard | widelec Laullon
SmartGit
Ze strony głównej:
Możesz pobrać go z ich strony internetowej .
Pobieranie
TortoiseGit
TortoiseSVN Git wersja dla użytkowników systemu Windows.
Pobieranie
QGit
Pobieranie
gitg
funkcje
Pobierz: wydania lub źródło
Gitbox
Pobieranie
Gity
Witryna Gity nie ma zbyt wielu informacji, ale na podstawie zrzutów ekranowych wydaje się być bogatym w funkcje otwartym git gui OS X.
Pobierz lub źródło
Meld
Pliki do pobrania
Katana
Git GUI dla OSX Steve Dekorte.
Bezpłatnie dla 1 repozytorium, 25 USD za więcej.
Pobieranie
Sprout (wcześniej GitMac)
Koncentruje się na ułatwieniu korzystania z Git. Zawiera natywny interfejs Cocoa (podobny do Maca), szybkie przeglądanie repozytorium, klonowanie, push / pull, rozgałęzianie / scalanie, różnicę wizualną, zdalne gałęzie, łatwy dostęp do terminala i wiele innych.
Dzięki temu, że najczęściej używane akcje Git są intuicyjne i łatwe do wykonania, Sprout (wcześniej GitMac) sprawia, że Git jest przyjazny dla użytkownika. Zgodny z większością przepływów pracy Git, Sprout jest świetny dla projektantów i programistów, współpracy zespołowej oraz zaawansowanych i początkujących użytkowników.
Pobierz | Stronie internetowej
Wieża
Bogaty w funkcje Git GUI dla Mac OSX. 30-dniowy bezpłatny okres próbny, 59 USD za licencję dla jednego użytkownika.
Pobierz | Stronie internetowej
EGit
Pobierz | Stronie internetowej
Rozszerzenia Git
Open Source dla Windows - instaluje wszystko, czego potrzebujesz do pracy z Git w jednym pakiecie, łatwym w użyciu.
Pobieranie
Ogromne podziękowania dla dbr za opracowanie na temat git gui.
SourceTree
SourceTree to darmowy klient Mac dla Git, Mercurial i SVN. Zbudowany przez Atlassian, twórców BitBucket, wydaje się działać równie dobrze z każdym systemem VC, co pozwala opanować jedno narzędzie do użytku we wszystkich twoich projektach, jednak są one kontrolowane pod kątem wersji. Pełen funkcji i BEZPŁATNY.
Pobierz | Stronie internetowej
źródło
Cóż, pomimo faktu, że prosiłeś, abyśmy nie „po prostu” łączyli się z innymi zasobami, jest to głupie, gdy istnieje już zasób uprawiany przez społeczność (i rośnie), który jest naprawdę całkiem dobry: Księga społeczności Git . Poważnie, ponad 20 pytań w pytaniu będzie mało zwięzłych i spójnych. Książka społeczności Git jest dostępna zarówno w formacie HTML, jak i PDF, i odpowiada na wiele twoich pytań za pomocą jasnych, dobrze sformatowanych i recenzowanych odpowiedzi oraz w formacie, który pozwala od razu przejść do problemu.
Niestety, jeśli mój post naprawdę cię denerwuje, usunę go. Po prostu to powiedz.
źródło
Jak skonfigurować, aby ignorować pliki:
Możliwość ignorowania przez git plików, których nie chcesz śledzić, jest bardzo przydatna.
Aby zignorować plik lub zestaw plików, podaj wzór. Składnia wzoru dla git jest dość prosta, ale potężna. Ma zastosowanie do wszystkich trzech różnych plików, o których wspomnę poniżej.
Świetny przykład ze strony podręcznika gitignore (5) :
Zasadniczo istnieją trzy różne sposoby ignorowania nieśledzonych plików.
1) Zignoruj dla wszystkich użytkowników repozytorium:
Dodaj plik o nazwie .gitignore do katalogu głównego kopii roboczej.
Edytuj .gitignore, aby dopasować swoje preferencje, dla których pliki powinny / nie powinny być ignorowane.
i zatwierdź, kiedy skończysz.
2) Zignoruj tylko swoją kopię repozytorium:
Dodaj / edytuj plik $ GIT_DIR / info / exclude w kopii roboczej z preferowanymi wzorami.
Np .: Moja kopia robocza to ~ / src / project1, więc edytowałbym ~ / src / project1 / .git / info / exclude
Jesteś skończony!
3) Zignoruj we wszystkich sytuacjach w systemie:
Globalne wzorce ignorowania dla twojego systemu mogą znajdować się w pliku o dowolnej nazwie.
Mój osobiście nazywa się ~ / .gitglobalignore
Następnie mogę powiadomić git o tym pliku, edytując mój plik ~ / .gitconfig w następującym wierszu:
Jesteś skończony!
Uważam, że strona podręcznika gitignore jest najlepszym źródłem informacji.
źródło
Jak „otagować” konkretny zestaw poprawek
Jak „oznaczyć” „tagować” lub „zwolnić” konkretny zestaw poprawek dla określonego zestawu plików, aby zawsze móc pobrać go później?
Za pomocą
git tag
polecenia.Aby po prostu „otagować” bieżącą wersję, wystarczy uruchomić.
Aby wyświetlić listę bieżących tagów, po prostu uruchom
git tag
bez argumentów lub-l
(małe litery L):Aby usunąć tag, użyj
-d
flagi:Aby oznaczyć konkretne (poprzednie) zatwierdzenie, po prostu ...
Na przykład:
Uwaga: domyślnie git tworzy tag „lekki” (w zasadzie odniesienie do konkretnej wersji). „Właściwym” sposobem jest użycie
-a
flagi. Spowoduje to uruchomienie edytora z prośbą o wiadomość znacznika (identycznie jak prośba o potwierdzenie, możesz także użyć-m
flagi, aby podać wiadomość znacznika w wierszu poleceń). Użycie znacznika z adnotacjami tworzy obiekt z własnym identyfikatorem, datą, znacznikiem (autorem) i opcjonalnie podpisem GPG (przy użyciu-s
znacznika). Więcej informacji na ten temat można znaleźć w tym pościeAby wyświetlić listę tagów z adnotacjami, użyj
-n1
flagi, aby wyświetlić 1 linię każdej wiadomości tagu (-n245
aby wyświetlić pierwsze 245 linii każdej adnotacji itd.):Aby uzyskać więcej informacji, zobacz stronę podręcznika git-tag (1)
źródło
git tag tagname revision_SHA1
Przykład przepływu pracy z GIT.
Git jest niezwykle elastyczny i dobrze dostosowuje się do dowolnego przepływu pracy, ale niewymuszanie określonego przepływu pracy może mieć negatywny wpływ na utrudnienie zrozumienia, co możesz zrobić z gitem poza liniowym przepływem pracy „tworzenia kopii zapasowych” oraz na przykład, jak przydatne może być rozgałęzienie .
Ten post na blogu ładnie wyjaśnia bardzo prosty, ale skuteczny przepływ pracy, który jest naprawdę łatwy do skonfigurowania za pomocą git.
cytowanie z postu na blogu: uważamy origin / master za główną gałąź, w której kod źródłowy HEAD zawsze odzwierciedla stan gotowości do produkcji:
Przepływ pracy stał się na tyle popularny, że stworzył projekt, który implementuje ten przepływ pracy: git-flow
Ładna ilustracja prostego przepływu pracy, w którym wprowadzasz wszystkie zmiany w fazie programowania, a tylko w trybie mistrzowskim, gdy kod jest w stanie produkcyjnym:
Powiedzmy teraz, że chcesz pracować nad nową funkcją lub nad refaktoryzacją modułu. Możesz stworzyć nową gałąź, którą moglibyśmy nazwać gałęzią „funkcji”, co zajmie trochę czasu i może uszkodzić część kodu. Gdy twoja funkcja będzie „wystarczająco stabilna” i będziesz chciał przenieść ją „bliżej” produkcji, scalisz swoją gałąź funkcji w celu rozwoju. Gdy wszystkie błędy zostaną rozwiązane po scaleniu, a kod przejdzie pomyślnie wszystkie testy, możesz wprowadzić zmiany w master.
Podczas całego tego procesu znajduje się straszny błąd bezpieczeństwa, który należy natychmiast naprawić. Możesz mieć gałąź zwaną poprawkami, która wprowadza zmiany, które są szybciej wypychane z powrotem do produkcji niż normalna gałąź „rozwijania”.
Tutaj masz ilustrację tego, jak może wyglądać przepływ pracy tej funkcji / poprawki / rozwoju / produkcji (dobrze wyjaśniony w poście na blogu, i powtarzam, że post na blogu wyjaśnia cały proces o wiele bardziej szczegółowo i znacznie lepiej niż ja .
źródło
Oto kopia postu PJ Hyetta, ponieważ nie jest już dostępny:
źródło
./foo
ale nie określono ścieżki dla klonowania get, gdzie się wymeldujesz?Jak zainstalować Git
W systemie Windows:
Zainstaluj msysgit
Istnieje kilka plików do pobrania:
To również instaluje powłokę bash Cygwin, dzięki czemu można używać
git
w ładniejszej powłoce (niż cmd.exe), a także obejmuje git-gui (dostępne za pomocągit gui
polecenia lubStart > All Programs > Git
menu)Mac OS X
Użyj instalatora git-osx lub możesz także zainstalować ze źródła
Za pośrednictwem menedżera pakietów
Zainstaluj
git
za pomocą natywnego menedżera pakietów. Na przykład na Debianie (lub Ubuntu):Lub w Mac OS X za pośrednictwem MacPorts :
… Lub fink:
… Lub Homebrew :
W przypadku dystrybucji opartych na systemie Red Hat, takich jak Fedora:
W Cygwin pakiet Git można znaleźć w sekcji „devel”
Ze źródła (Mac OS X / Linux / BSD / itp.)
W Mac OS X, jeśli masz zainstalowane Narzędzia programistyczne, możesz bardzo łatwo skompilować Git ze źródła. Pobierz najnowszą wersję Git jako a
.tar.bz
lub.tar.gz
ze strony http://git-scm.com/ i rozpakuj ją (kliknij dwukrotnie w Finderze)W systemie Linux / BSD / itp. powinno być prawie tak samo. Na przykład w Debianie (i Ubuntu) musisz zainstalować
build-essential
pakiet przezapt
.Następnie w terminalu,
cd
do którego wyodrębniono pliki (Uruchomieniecd ~/Downloads/git*/
powinno działać), a następnie uruchom ..Spowoduje to zainstalowanie Git w domyślnym miejscu (
/usr/local
- takgit
będzie w/usr/local/bin/git
)Poprosi Cię o podanie hasła (dla
sudo
), jest to po to, aby można było zapisać się w/usr/local/
katalogu, do którego dostęp może uzyskać tylko użytkownik „root”, dlatego wymagane jest sudo!Jeśli chcesz zainstalować go gdzieś osobno (aby pliki Gita nie były pomieszane z innymi narzędziami), użyj
--prefix
polecenia config:Spowoduje to zainstalowanie
git
pliku binarnego w/usr/local/bin/gitpath/bin/git
- więc nie musisz go wpisywać za każdym razem, powinieneś dodać do swojego$PATH
, dodając następujący wiersz do~/.profile
:Jeśli nie masz dostępu do sudo, możesz użyć
--prefix=/Users/myusername/bin
i zainstalować w swoim katalogu domowym. Pamiętaj, aby dodać~/bin/
do$PATH
Skrypt x-git-update-to-najnowsza wersja automatyzuje wiele z tych czynności:
źródło
yum install git
. Do uruchomienia GUIyum install git-gui
.sudo port install git-core+bash_completion+doc
fink self-update
powinno pomócGit Reset
Powiedz, że robisz ciągnięcie, scalasz go ze swoim kodem i decydujesz, że ci się nie podoba. Użyj git-log lub tig i znajdź skrót gdziekolwiek chcesz wrócić (prawdopodobnie ostatnie zatwierdzenie przed ściągnięciem / scaleniem) skopiuj skrót i wykonaj:
Zamiast skrótu możesz użyć HEAD ^ jako skrótu do poprzedniego zatwierdzenia.
źródło
git reset
powinien wystartować przypadkowogit add
Jak skonfigurować wspólne repozytorium zespołu?
Jak skonfigurować normalne repozytorium opisano tutaj - ale jak skonfigurować repozytorium zespołowe, z którego każdy może pobierać i przesyłać do iz?
Korzystanie ze wspólnego systemu plików NFS
Zakładając, że Twój zespół ma już na przykład członkostwo w grupie udostępnionej, z którego można korzystać.
Aby rozpocząć korzystanie z tego repozytorium, najłatwiej jest zacząć od lokalnego repozytorium, z którego już korzystałeś:
Inni mogą teraz sklonować to i zacząć działać:
Korzystanie z SSH
Skonfiguruj konto użytkownika na serwerze docelowym. Niezależnie od tego, czy korzystasz z konta bez hasła, konta z hasłem, czy też używasz
authorized_keys
naprawdę zależy od wymaganego poziomu bezpieczeństwa. Spójrz na Konfigurowanie Git przez SSH, aby uzyskać więcej informacji.Jeśli wszyscy programiści korzystają z tego samego konta w celu uzyskania dostępu do tego udostępnionego repozytorium, nie trzeba używać
--shared
opcji jak powyżej.Po zainicjowaniu repozytorium w taki sam sposób jak powyżej, wykonujesz wstępne wypychanie w następujący sposób:
Widzisz podobieństwo do powyższego? Jedyne, co może się zdarzyć, to SSH z prośbą o hasło, jeśli konto ma hasło. Jeśli pojawi się ten monit na koncie bez hasła, serwer SSH prawdopodobnie się wyłączył
PermitEmptyPasswords
.Klonowanie wygląda teraz tak:
źródło
git status
jest twoim przyjacielem, używaj go często. Dobry do odpowiadania na pytania takie jak:W przeciwieństwie do, powiedzmy
svn status
,git status
działa niemal natychmiast, nawet przy dużych projektach. Często uważałem, że jest to pocieszające podczas nauki używania tego narzędzia, aby upewnić się, że mój model mentalny tego, co się dzieje, jest dokładny. Teraz używam go głównie do przypomnienia sobie, co zmieniłem od czasu ostatniego zatwierdzenia.Oczywiście, jest to znacznie bardziej przydatne, jeśli Twój .gitignore jest poprawnie skonfigurowany.
źródło
Zatwierdź zmiany
Po edycji pliku musisz zatwierdzić zmiany w git. Kiedy wykonasz to polecenie, poprosi on o wiadomość zatwierdzenia - która jest tylko prostym tekstem, który mówi wszystkim, co zmieniłeś.
Zatwierdzi plik main.c w katalogu ./source/
zatwierdzi wszystkie zmienione pliki (ale nie nowe pliki, należy je dodać do indeksu za pomocą git-add). Jeśli chcesz zatwierdzić tylko niektóre pliki, musisz je najpierw wypróbować za pomocą git-add, a następnie zatwierdzić bez flagi -a.
Zatwierdzanie zmienia tylko lokalne repozytorium, ale nie zdalne. Jeśli chcesz wysłać zatwierdzenia do zdalnego repozytorium, musisz wykonać wypychanie.
Dla kogoś pochodzącego z CVS lub SVN jest to zmiana, ponieważ zatwierdzenie do centralnego repozytorium wymaga teraz dwóch kroków.
źródło
Jak się rozgałęziasz?
Domyślna gałąź w repozytorium git nazywa się
master
.Aby utworzyć nowy oddział, użyj
Aby wyświetlić listę wszystkich gałęzi w bieżącym typie repozytorium
Jeśli chcesz przejść do innej gałęzi, możesz użyć
Aby utworzyć nowy oddział i przejść do niego w jednym kroku
Aby usunąć gałąź, użyj
Aby utworzyć gałąź ze zmianami z bieżącej gałęzi, wykonaj
źródło
Uzyskiwanie najnowszego kodu
Dotyczy to prawie wszystkich przypadków uzyskania najnowszej kopii kodu ze zdalnego repozytorium.
źródło
Pro Git wolny książka jest zdecydowanie moim ulubionym, szczególnie dla początkujących.
źródło
Git Magic to wszystko, czego potrzebujesz. Gwarancja zwrotu pieniędzy!
źródło
Jak łączyć gałęzie?
Jeśli chcesz scalić gałąź (np.
master
Dorelease
), upewnij się, że twoja obecna gałąź jest gałęzią docelową, z którą chcesz się połączyć (użyjgit branch
lubgit status
zobacz swoją obecną gałąź).Następnie użyj
(gdzie
master
jest nazwa gałęzi, którą chcesz scalić z bieżącą gałęzią).Jeśli występują jakieś konflikty, możesz użyć
aby zobaczyć oczekujące konflikty, które musisz rozwiązać.
źródło
Odkryłem również, że Git Internals jest bardzo przydatny. Jest napisany przez Scott Chacon (autor Pro Git i opiekun Git Community Book). W Git Internals podoba mi się to, że najpierw skupia się na pojęciach, a następnie na poleceniach , a ponieważ jest to około 100 małych stron, szybko się je trawi.
źródło
Jak widzisz historię zmian pliku?
źródło
Jak śledzić zdalne oddziały
Zakładając, że istnieje zdalne repozytorium, z którego sklonowałeś swoje lokalne repozytorium, a także zakładając, że w tym zdalnym repozytorium istnieje gałąź o nazwie „some_branch”, oto sposób lokalnego śledzenia:
źródło
git remote show REMOTENAME
Prawdziwą dobrą pracą dla zrozumienia, jak działa Git, jest Przypowieść o Git . Bardzo polecam!
źródło
Jak porównać dwie wersje pliku lub bieżący plik i poprzednią wersję?
Poleceniem porównania jest
git diff
.Aby porównać 2 wersje pliku:
To różni commit1 od commit2; jeśli zmienisz kolejność, pliki zostaną odwrócone, co może nie być tym, czego oczekujesz ...
Aby porównać bieżący plik przemieszczany z repozytorium:
Aby porównać bieżący plik niestacjonarny z repozytorium:
źródło
Dlaczego jeszcze jedno howto? W sieci są naprawdę dobre, na przykład przewodnik po git, który jest idealny na początek. Ma dobre linki, w tym książkę git do której można się przyczynić (hostowane na git hub) i która jest idealna do tego wspólnego zadania.
Jeśli chodzi o stackoverflow, naprawdę wolałbym zobaczyć twoje ulubione sztuczki!
Mój, który odkryłem niedawno, jest
git stash
wyjaśniony tutaj , co pozwala ci zapisać swoją obecną pracę i przejść do innej gałęziEDYCJA: tak jak w poprzednim poście, jeśli naprawdę wolisz format stackoverlow z postami jako wiki, usunę tę odpowiedź
źródło
Interfejs użytkownika - Tig
Instalacja:
Stosowanie
W repozytorium git wpisz „tig”, aby wyświetlić interaktywny dziennik, naciśnij „enter” na dowolnym dzienniku, aby wyświetlić więcej informacji na jego temat. h, aby uzyskać pomoc, która zawiera podstawowe funkcje.
Drobnostki
„Tig” to „Git” do tyłu.
źródło
Jak mogę utworzyć oddział w zdalnym repozytorium?
Zakładając, że sklonowałeś swoje zdalne repozytorium z jednego zdalnego repozytorium.
źródło
git push origin name_of_branch
a gałąź zostanie już utworzona w twoim pilociename_of_branch
to nazwa lokalna, druga to (pożądana) nazwa zdalnego oddziału, więc może być tak,local_name_of_branch:remote_name_of_branch
jeśli chcesz, aby nazwy były różne. Jeśli chcesz, aby były takie same, nadal musisz określić to tak, że ten b / c git nie zakłada, że chcesz, aby nazwa była taka sama, chyba że to powiesz (istnieją również inne metody, aby to zrobić, jednakże)Zacząłem od oficjalnego samouczka Git . Myślę, że jest to wystarczająco praktyczne dla początkujących (z twojej definicji byłem i nadal jestem początkujący! Ledwo rozumiem pliki makefile, grałem tylko trochę z Apache Subversion itp.).
źródło
Jak usunąć gałąź ze zdalnego repozytorium?
Wykonaj wypchnięcie na pilocie za pomocą
:
przed nazwą oddziałujest
origin
nazwą twojego pilota imybranchname
nazwą oddziału, który ma zostać usuniętyhttp://help.github.com/remotes/
źródło
Wciśnij i pociągnij zmiany
W uproszczony sposób po prostu zrób
git push
igit pull
. Zmiany są scalane, a jeśli wystąpi konflikt, git powiadomi Cię o tym i możesz rozwiązać go ręcznie.Kiedy po raz pierwszy wypychasz do zdalnego repozytorium, musisz zrobić
git push origin master
(master jest gałęzią master). Od tego momentu po prostu róbgit push
.Wciśnij tagi za pomocą
git push --tags
.źródło
Sprawdzanie kodu
Najpierw przejdź do pustego katalogu, użyj „git init”, aby zrobić z niego repozytorium, a następnie sklonuj zdalne repozytorium do własnego.
Gdziekolwiek początkowo klonujesz, z którego domyślnie pobierane jest „git pull”.
źródło
Gity: http://macendeavour.com/gity
źródło