Na przykład, możesz zrobić git remote --verbose
, a git pokaże wszystkie piloty, które masz w projekcie, git branch
pokaże wszystkie gałęzie i zasygnalizuje bieżącą gałąź, ale jak wyświetlić wszystkie poddrzewa, bez żadnego destrukcyjnego polecenia? git subtree
poda przykłady użycia, ale niczego nie wylistuje. poddrzewo ma tylko add
, pull
, push
, split
, merge
.Jak wyświetlić listę poddrzewa git w katalogu głównym?
Odpowiedz
Nie ma żadnego wyraźny sposób to zrobić (przynajmniej na razie), jedyne dostępne polecenia są wymienione tutaj (jak zauważył sam, ale tutaj jest punktem odniesienia dla kolejnych poszukiwaczy): https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txt
Przeszedłem przez kod (w zasadzie cały ten mechanizm jest dużym plikiem skryptowym powłoki), wszystkie śledzenie odbywa się za pomocą komunikatów zatwierdzania, więc wszystkie funkcje używają mechanizmu git log
z wieloma grep
-ing, aby zlokalizować własne dane.
Od subtree musi mieć folder o tej samej nazwie w folderze głównym repozytorium, można uruchomić tego, aby uzyskać informacje, które chcesz (w powłoce bash):
git log | grep git-subtree-dir | tr -d ' ' | cut -d ":" -f2 | sort | uniq
Teraz to robi” t sprawdzić, czy folder istnieje lub nie (może to i mechanizm poddrzewa nie będą wiedzieć, usuwanie), tak oto w jaki sposób można wymienić tylko istniejące poddrzewa, to będzie pracować w dowolnym folderze w repozytorium:
git log | grep git-subtree-dir | tr -d ' ' | cut -d ":" -f2 | sort | uniq | xargs -I {} bash -c 'if [ -d $(git rev-parse --show-toplevel)/{} ] ; then echo {}; fi'
Jeśli naprawdę chcesz, zaproponuj Git, aby dołączali do następnych wersji :)
polecenie, które podasz mi nie działa, git log | grep git-subtree-dir nie zwraca żadnych wyników (wersja git 1.7.9.5) – FlipMcF
+1. @procesar, FlipMcF: Działa to dla mnie w "git bash" w systemie Windows: "git version 1.8.5.2.msysgit.0". Powodem, dla którego powinno działać, jest to, że polecenie "git subtree" dodaje kilka linii zaczynających się od "git-subtree-" do wiadomości commit, a jedna z linii wygląda jak "git-subtree-dir: you-prefix-folder" .Dla "prof" - wystarczy spojrzeć na wynik "git log" zaraz po tobie uruchom "git subtree add ...", a zobaczysz te linie: –
@FlipMcF, oficjalne wsparcie poddrzewa zostało dodane w 1.7.11, więc domyślam się, że używasz starego i odłączonego modułu poddrzewa, który nie działa jak nowoczesne wersje. Możesz zainstalować najbardziej zaktualizowany skrypt podtremy (zobacz [tutaj] (http://log.pardus.de/2012/08/modular-git-with-git-subtree.html)) lub zaktualizuj całą instalację git. –
Nawiązując do Sagi Illtus' answer, dodaj następującą alias do ~/.gitconfig
[alias]
ls-subtrees = !"git log | grep git-subtree-dir | awk '{ print $2 }'"
wtedy można git ls-subtrees
z korzenia repozytorium, aby wyświetlić wszystkie ścieżki poddrzewa:
$> cd /path/to/repository
$> git ls-subtrees
some/subtree/dir
Byłoby świetnie, gdyby nie to wypluwa duplikaty w moim repozytorium - prawdopodobnie dlatego, że dodałem usunięte i ponownie dodałem poddrzewo. Kiedy faktycznie wiem, co robię, będzie to pomocne ;-) –
@MattBracewell Spójrz na 'uniq'. Możesz zaktualizować alias do potoku do niego lub 'git ls-subtrees | uniq' – kenchilada
Lub użyj" sort-u "i dodaj katalogi w porządku alfabetycznym jako bonus! – Potherca
- 1. Jak wyświetlić listę wersji plików w git?
- 2. Jak wyświetlić listę plików w katalogu statycznym?
- 3. Jak wyświetlić listę plików w katalogu android?
- 4. Zapytanie o listę plików i folderów w katalogu głównym
- 5. Dodawanie poddrzewa git z oddziału
- 6. GIT .gitignore ignorować tylko folder w katalogu głównym
- 7. Przepisywanie do katalogu w katalogu głównym
- 8. Katalog katalogu nadrzędnego w katalogu głównym
- 9. Jak wyświetlić listę plików w katalogu za pomocą bash?
- 10. PHP: Jak wyświetlić listę plików w katalogu aukcji bez podkatalogów
- 11. Jak mogę wyświetlić listę wszystkich plików w katalogu z Perl?
- 12. status git - czy można wyświetlić zmiany tylko w określonym katalogu?
- 13. Jak wyświetlić listę zmienionych plików dla pojedynczego zatwierdzenia, w Git?
- 14. Konwersja modułu graficznego Git do poddrzewa
- 15. poddrzewo git połączyło się w katalogu głównym repozytorium (w. Git-flow)
- 16. hg - Ignoruj katalog tylko w katalogu głównym
- 17. Deserializowanie tablicy XML w katalogu głównym dokumentu
- 18. Jaka jest różnica między git poddrzewa scalania i git-poddrzewie
- 19. Usunąć określone węzły w katalogu głównym XML?
- 20. Jak wyświetlić różnicę lokalnych zatwierdzeń w git
- 21. Na Heroku, jak wdrożyć aplikację Rails, która nie znajduje się w katalogu głównym git repo?
- 22. Błąd łączenia po przekonwertowaniu modułu podrzędnego Git do poddrzewa
- 23. Jak wyświetlić listę zależności JAR
- 24. Jak wyświetlić listę skonfigurowanych repozytoriów?
- 25. Jak wyświetlić listę pobrań zasobów
- 26. Jak wyświetlić pliki tekstowe w wybranym katalogu w polu listy?
- 27. Git dodać oddział w jednym katalogu?
- 28. Jak uzyskać listę katalogów w katalogu NSDocumentDirectory?
- 29. jak wyświetlić listę python w szablonie django
- 30. Jak wyświetlić listę relacji w schemacie Postgres?
wybaczcie, ale to, co jest poddrzewo? Uruchamianie 'git subtree' dało mi' git: 'subtree' nie jest poleceniem git. ". – Jokester
musisz zainstalować podtekst oddzielnie, nie jest teraz dołączony do git. http://engineeredweb.com/blog/how-to-install-git-subtree/. poddrzewo to znacznie lepsza alternatywa dla submodułów :) – pocesar
@ subklan gocesar git [został scalony] (https://github.com/apenwarr/git-subtree/blob/master/THIS-REPO-IS-OBSOLETE) do głównej linii git, i jest dostępny od wersji 1.7.11 – 1615903