Czy jest jakiś sposób sprawdzenia, jakie pliki zostały zmienione w oddziale?Pobierz wszystkie pliki, które zostały zmodyfikowane w gałęzi git
Odpowiedz
Alternatywą do odpowiedzi przez @Marco Ponti, unikając kasę:
git diff --name-only <notMainDev> $(git merge-base <notMainDev> <mainDev>)
Jeśli szczególności powłoka nie rozumie $() skonstruować, użyj zamiast back-kleszcze.
ah! to jest dobra zabawa, a co powiesz na to, czy chcę powiedzieć, że jest to aktualna gałąź, w której się znajduję. to nie musi tego określać? – Raif
'git diff - onlyname-only
hmmm, cóż, domyślam się, że chciałbym zrobić git diff - tylko nazwa-nazwa
Wszystko co musisz zrobić to:
git checkout <notMainDev>
git diff --name-only <mainDev>
To pokaże tylko nazwy plików, które różnią się między dwoma gałęziami.
Wow szybkie i zbyt punkt. Dziękuję Ci. btw kocham git. zawsze jest to szybkie i do rzeczy, które uważam, – Raif
Wierzę, że pokażą także rzeczy, które zmieniły się na '
Tak, to prawda @twalberg, pokaże te zmiany, jeśli gałęzie są rozbieżne. Zakładałem, że 'notMainDev' będzie na bieżąco z zatwierdzeniami mainDev ... Zazwyczaj jednak uważam, że warto zauważyć te różnice. –
git show --stat origin/branch_name
Zostanie wyświetlona lista plików, które zostały dodane lub zmienione w ramach tej gałęzi.
To jest złe, pokazuje tylko pliki zmienione w głównym zatwierdzeniu tego oddziału, a nie w całym oddziale. – notJim
Co, jeśli to może być tak proste, jak to?
git changed
Jeśli jesteś gotów założyć, że główny oddział jest nazywany „master” i że tworzyć inne branże z panem, a następnie można dodać alias do pliku ~/.gitconfig
zrobić to takie proste:
cbranch = !"git branch | grep '*' | cut -f2 -d' '"
changed = !"git diff --name-only $(git cbranch) $(git merge-base $(git cbranch) master)"
Te założenia będą działały dla większości ludzi w większości sytuacji, ale musisz mieć świadomość, że je robisz.
Należy również użyć powłoki obsługującej $()
. It's very likely that your shell supports this.
Rozszerzanie się co @twalberg i @iconoclast miał, jeśli używasz cmd z jakiegokolwiek powodu, można użyć:
FOR /F "usebackq" %x IN (`"git branch | grep '*' | cut -f2 -d' '"`) DO FOR /F "usebackq" %y IN (`"git merge-base %x master"`) DO git diff --name-only %x %y
Nie mogę uwierzyć, że jest tak wiele sposobów na zrobienie tego. Używam whatchanged jak ktoś pisał wcześniej, tylko z następującymi argumentami:
git whatchanged --name-only --pretty="" origin..HEAD
To właśnie wymieniono nazwy plików, a tylko te, które zmieniły na bieżącej gałęzi.
To wydaje się być najłatwiejszą odpowiedzią, ponieważ nie wymaga dodatkowych informacji. Wynik jest poprawny i łatwiejszy do zapamiętania niż zaakceptowana odpowiedź! – RickMeasham
Dzięki, to jest interesujące, bardziej rozwlekłe. Zapewnia dane wyjściowe dla każdego zatwierdzenia, w odwrotnej kolejności. _git-whatchanged - Pokaż dzienniki z różnicą każde zatwierdzenie wprowadza https://git-scm.com/docs/git-whatchanged – nealmcb
następujący plik wsadowy jest oparta na odpowiedź twalberg, ale będzie działać w systemie Windows:
@ECHO OFF
C: :: <== OR USE A DIFFERENT DRIVE
CD \path\to\where\git\files\are :: <== CHANGE TO THE ACTUAL PATH
SET /p b="Enter full path of an ALREADY MERGED branch to compare with origin/master: "
bash --login -i -c "git diff --name-only %b% $(git merge-base %b1% origin/drop2/master)"
PAUSE
Powyższe zakłada, że główną gałąź jest pochodzenie/master i git bash został włączony po zainstalowaniu Git (i jego lokalizacja znajduje się w środowisku ścieżki). I rzeczywiście potrzebne, aby pokazać rzeczywiste różnice przy użyciu narzędzia skonfigurowany diff (KDiff3) tak podstawiony następujące polecenie bash powyżej:
bash --login -i -c "git difftool --dir-diff %b% $(git merge-base %b1% origin/drop2/master)"
bardzo lubiłem użytkownika @ twalberg odpowiedź, ale nie chcą mieć do wpisz bieżące oddział przez cały czas. Więc używam tego:
git diff --name-only $(git merge-base master HEAD)
Zdziwiłem się, że to nie zostało powiedziane do tej pory!
git diff master...branch
więc zobaczyć zmiany tylko na branch
Aby sprawdzić obecne wykorzystanie oddział
git diff master...
Dzięki jqr
Jest to krótki ręka dla
git diff $(git merge-base master branch) branch
więc podstawa seryjnej (najnowsza wspólna popełnić pomiędzy oddziały) i końcówka oddział
również za pomocą pochodzenia/master zamiast tylko mistrz pomoże w przypadku lokalnego master dnia
używam grep więc mogę tylko wiersze z diff --git które ścieżka plików:
git diff branchA branchB | grep 'diff --git'
// OUTPUTS ALL FILES WITH CHANGES, SIMPLE HA :)
diff --git a/package-lock.json b/package-lock.json
- 1. Jak usunąć wszystkie zdalne gałęzie git, które zostały już zintegrowane?
- 2. git: pobierz pliki z innej gałęzi do bieżącej gałęzi (nie przełączaj HEAD do drugiej gałęzi)
- 3. Git post-receive do kasowania tylko tych plików, które zostały zmodyfikowane/dodane w push?
- 4. Ignorujesz zmodyfikowane (ale nie zatwierdzone) pliki w git?
- 5. git ponownie dodaj tylko te pliki, które już zostały przetestowane
- 6. Git: Jak zapobiegać zatwierdzaniu plików, które zostały zmodyfikowane tylko w celu debugowania?
- 7. Znajdź wszystkie aktualne linie zmodyfikowane przez autora
- 8. Generowanie pliku T4, gdy pliki kodu samej klasy zostały zmodyfikowane
- 9. Przycinanie gałęzi, które zostały usunięte w repozytorium Git, ale nadal istnieje w moim widelcu
- 10. git diff przemianowany/przeniesiony i zmodyfikowane pliki, ale przejdź przemianowany/przeniesiony i identyczne pliki
- 11. Pobierz wszystkie pliki zmodyfikowane w ciągu ostatnich 30 dni w katalogu
- 12. Odłóż wszystkie pliki na git
- 13. Jak Python zamyka pliki, które zostały gc'ed?
- 14. Zmiana nazw gałęzi w git
- 15. Jak scalać określone pliki z gałęzi Git
- 16. Mercurial pokazuje pliki zmodyfikowane niepoprawnie
- 17. Jak zatwierdzać tylko zmodyfikowane (a nie nowe lub usunięte) pliki?
- 18. Nierozwiązywalny błąd Gita: Poniższe pliki drzewa, które nie zostały naprawione, zostałyby zastąpione przez pobranie płatności.
- 19. Jak uruchomić wszystkie zmodyfikowane klasy testowe JUnit?
- 20. Przełączanie gałęzi w git
- 21. Batch skopiować tylko zmodyfikowane pliki
- 22. Znajdź wszystkie pliki binarne w git HEAD
- 23. Jak zmienić zachowanie statusu git wyświetlając zmodyfikowane pliki, które ostatecznie nie są zatwierdzone?
- 24. Element tekstowy pokazuje pliki w folderze projektu, które zostały usunięte.
- 25. Jak zrobić plik git to nowe pliki, które nie zostały wystawione na próbę?
- 26. Zamówienie wielu plików, które zostały przeniesione w drzewie roboczym
- 27. Jak rozpoznać pliki/katalogi, które zostały dodane lub usunięte w zatwierdzeniu git?
- 28. W git, jak dowiedzieć się, które pliki zostały dodane po określonym tagu?
- 29. Pobierz wszystkie klawisze, które są wciśnięte
- 30. Jak usunąć wszystkie usunięte pliki w Git
możliwe duplikat [Jak mogę sprawdzić, które pliki zostały zmodyfikowane w oddziale?] (http: // stackoverflow .pl/questions/1749323/how-can-i-find-out-which-files-have-been-modified -in-a-branch) –
Nie są moimi pracownikami, są moimi kolegami i to nie one w szczególności tak bardzo jak ludzie w ogóle. Ale tak, ponownie czytając ten post, wydaje się nieco agro. :) – Raif
Czy możesz użyć github lub bitbucket, gitlab? Istnieją narzędzia do zarządzania tą sytuacją. Programista wysyła żądanie pobrania. Otrzymasz wniosek i będziesz miał dostęp do bardzo dobrego interfejsu, który pokaże różnicę wszystkich zmian dokonanych w każdym pliku. Możesz nawet komentować, prosić o zmiany itp. Gdy zmiany są dobre, możesz zaakceptować prośbę, która połączy zmiany w żądanej gałęzi (zwykle rozwija się). To jest najlepszy sposób postępowania z tą sytuacją. –