Pokazywanie, które pliki zostały zmienione między dwiema wersjami
Chcę połączyć dwie gałęzie, które zostały rozdzielone na jakiś czas i chcę wiedzieć, które pliki zostały zmodyfikowane.
Natknąłem się na ten link: http://linux.yyz.us/git-howto.html co było bardzo przydatne.
Narzędzia do porównywania gałęzi, z którymi się spotkałem to:
git diff master..branch
git log master..branch
git shortlog master..branch
Zastanawiałem się, czy jest coś w stylu " Git status master..branch", aby zobaczyć tylko te pliki, które różnią się między sobą gałęzie.
Bez tworzenia nowego narzędzia, myślę, że jest to najbliższe, co możesz teraz zrobić (co oczywiście pokaże powtórzenia, jeśli plik został zmodyfikowany więcej niż raz):
git diff master..branch | grep "^diff"
14 answers
Aby porównać bieżącą gałąź z master
$ git diff --name-status master
Aby porównać dowolną parę gałęzi
$ git diff --name-status firstbranch..yourBranchName
To powinno zrobić to, czego potrzebujesz, jeśli dobrze cię rozumiem.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-03-16 18:47:13
Try
$ git diff --stat --color master..branchName
To da ci więcej informacji o każdej zmianie, przy użyciu tej samej liczby wierszy.
Możesz także odwrócić gałęzie, aby uzyskać jeszcze wyraźniejszy obraz różnicy, jeśli chcesz połączyć się w inny sposób:
$ git diff --stat --color branchName..master
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
2012-02-01 23:34:01
Należy również pamiętać, że git ma tanie i łatwe rozgałęzianie. Jeśli myślę, że połączenie może być problematyczne, tworzę gałąź dla połączenia. Jeśli więc master
ma zmiany, które chcę scalić i {[2] } jest moją gałęzią, która potrzebuje kodu z master, mogę wykonać następujące czynności:
git checkout ba
git checkout -b ba-merge
git merge master
.... review new code and fix conflicts....
git commit
git checkout ba
git merge ba-merge
git branch -d ba-merge
git merge master
/ Align = "left" / Jeśli się zaplątam, mogę po prostu usunąć gałąź ba-merge
i zacząć od nowa.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
2012-10-11 01:22:19
Jeśli ktoś próbuje wygenerować plik diff z dwóch gałęzi:
git diff master..otherbranch > myDiffFile.diff
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-04-03 14:01:39
Zauważ, że git ułatwia po prostu wypróbowanie połączenia i wycofanie się z wszelkich problemów, jeśli nie podoba ci się wynik. Może to być łatwiejsze niż szukanie potencjalnych problemów z wyprzedzeniem.
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
2009-05-05 00:59:54
Istnieje również metoda oparta na GUI.
Możesz użyć gitk .
-
Run:
$ gitk --all
Kliknij prawym przyciskiem myszy commit gałęzi i wybierz zaznacz ten commit w menu podręcznym.
- Kliknij prawym przyciskiem myszy commit innej gałęzi i wybierz Diff this -> marked commit lub Diff marked commit - > this.
Następnie w prawym dolnym panelu pojawi się lista zmienionych plików, a szczegóły różnic w lewy dolny panel.
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-09-10 22:15:11
Jeszcze jedna opcja, używając w tym przypadku meld:
git difftool -d master otherbranch
Pozwala to nie tylko zobaczyć różnice między plikami, ale także zapewnia łatwy sposób wskazywania i klikania określonego pliku.
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-04-24 13:23:31
Podczas pracy zespołowej lub nad wieloma funkcjami naraz, często zdarza się, że upstream lub nawet master zawiera pracę, która nie jest dołączona do Twojej gałęzi i będzie nieprawidłowo wyświetlana w podstawowych różnicach.
Jeśli Twój Upstream mógł się przesunąć, powinieneś to zrobić:
git fetch
git diff origin/master...
Samo użycie Git diff master może zawierać lub nie zawierać istotnych zmian.
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-17 03:12:13
A jeśli szukasz zmian tylko wśród niektórych plików, to:
git diff branch1 branch2 -- myfile1.js myfile2.js
Branch1 jest opcjonalny, a Twoja bieżąca gałąź (gałąź, na której się znajdujesz) będzie domyślnie branch1, jeśli nie zostanie podana. e. g:
git diff master -- controller/index.js
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-30 18:38:37
Jeśli używasz IntelliJ IDEA, Możesz również porównać dowolną gałąź z bieżącą działającą gałęzią. Zobacz też http://www.jetbrains.com/idea/webhelp/merging-deleting-and-comparing-branches.html#d288093e3827{[2]Po Więcej informacji. Jest to również dostępne w free edition.
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-06-06 07:17:35
Istnieją dwie gałęzie powiedzmy
- a (Branch on which you are working)
- B (Inna gałąź, z którą chcesz porównać)
Będąc w gałęzi A możesz wpisać
git diff --color B
To da ci wyjście
Ważnym punktem na ten temat jest
-
Tekst na Zielono jest wewnątrz obecny w gałęzi a
-
Tekst w kolorze czerwonym jest obecny w gałęzi B
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-10-04 11:56:48
Jest tu wiele odpowiedzi, ale chciałem dodać coś, co zwykle używam. Jeśli jesteś w jednej z gałęzi, które chcesz porównać, zazwyczaj wykonuję jedną z następujących czynności. Ze względu na tę odpowiedź powiemy, że jesteśmy w naszej gałęzi drugorzędnej. W zależności od tego, jaki widok potrzebujesz w tym czasie będzie zależeć od tego, który wybierzesz, ale większość czasu używam drugiej opcji z dwóch. Pierwsza opcja może być przydatna, jeśli próbujesz przywrócić oryginalną kopię -- tak czy siak, obie wykonują swoją pracę!
Porównamy master do gałęzi, w której się znajdujemy (która jest drugorzędna), a oryginalny kod będzie dodanymi liniami, a nowy kod będzie uważany za usunięte linie
git diff ..master
Lub
To również porówna master do gałęzi, w której się znajdujemy (która jest drugorzędna) i oryginalnym kodem będą stare linie, a nowym kodem będą nowe linie
git diff master..
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-31 22:00:58
Jeśli podoba Ci się GUI i używasz systemu Windows, Oto prosty sposób.
- Pobierz WinMerge
- Sprawdź dwie gałęzie w różnych folderach
- Wykonaj porównanie folderów po folderze używając WinMerge. Możesz również łatwo dokonać modyfikacji, jeśli jedna z gałęzi jest tą, nad którą pracujesz.
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-06-19 23:21:20
Możesz również łatwo porównać gałęzie dla zmienionych plików, używając na przykład TortoiseGit . Wystarczy kliknąć na Przeglądaj Referencje i wybierz gałęzie, które chcesz porównać.
Na przykład, jeśli porównasz Twoją gałąź z master otrzymasz listę plików, które zostaną zmienione w master jeśli zdecydujesz się połączyć Twoją-gałąź z master.
Pamiętaj, że będziesz miał inny wynik, jeśli porównaj master z your-branch i your-branch z master.
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-18 09:53:19