Jak zignorować wszystkie pliki w folderze z repozytorium Git w Sourcetree?

86

Mam repozytorium Bitbucket Git zarządzane za pomocą Sourcetree.

Mam dwa foldery, które chcę zatwierdzić, ale muszę zignorować wszystkie pliki w tych folderach, ponieważ zawierają one tylko pliki tymczasowe.

Jak mogę to zrobić?

rubdottocom
źródło

Odpowiedzi:

54

Dodaj to do .gitignore:

*
!.gitignore
Gergo Erdosi
źródło
13
Należy to dodać do każdego folderu, który chcesz śledzić. Samo istnienie tego pliku spowoduje, że git będzie śledzić folder (śledząc ten plik). Te *środki ignorować wszystkie pliki, a !.gitignoreśrodki nie ignoruj sam plik
Billy Księżyc
2
Jak wyjaśnił Billy Moon, dziękuję. Możesz więc tworzyć pliki .gitignore w katalogach. Ten plik mówi Gitowi, co ma ignorować, a czego nie.
Gergo Erdosi
21
Jak to robisz w SourceTree?
1,21 gigawata
1
Nie potrzebujesz do tego SourceTree, .gitginorejest to zwykły plik, po prostu utwórz go w katalogu, którego zawartość chcesz zignorować.
Gergo Erdosi
1
Jak wspomniano w @ AD7six poniżej, nie dodawaj! .Gitignore do pliku, ponieważ jest to niepotrzebne.
Xcalibur
155

Dla użytkowników Sourcetree: Jeśli chcesz zignorować określony folder, po prostu wybierz plik z tego folderu, kliknij go prawym przyciskiem myszy i wykonaj polecenie „Ignoruj ​​...”. Pojawi się wyskakujące menu, w którym możesz zignorować opcję „Ignoruj ​​wszystko poniżej: <TWÓJ NIEPOTRZEBNY FOLDER>”

Pierwsze menu

Drugie menu

Jeśli masz wyszarzoną opcję „Ignoruj”, musisz wybrać opcję „Zatrzymaj śledzenie”. Następnie plik zostanie dodany do plików w fazie przejściowej ze znakiem minus na czerwonym tle, a ikona pliku na liście plików niestabilnych zmieni się w znak zapytania na fioletowym tle. Teraz na liście plików niestabilnych opcja „Ignoruj” jest ponownie włączona. Po prostu zrób tak, jak opisano powyżej.

Kalzem
źródło
14
Jeśli folder jest już zatwierdzony, najpierw go usuń, zatwierdź zmiany, a następnie wykonaj powyższe kroki.
RMorrisey,
16
Mam wyszarzoną opcję „Ignoruj”. Czy ktoś wie, dlaczego?
Andrei Karcheuski
6
Ignoruj ​​jest dla mnie również wyszarzona.
Micah Zoltu
czy ignore add to git ignore? jeśli nie, dlaczego nie?
Joe Lloyd
1
@JoeLloyd tak, dodaje do git ignore. Możesz nawet zatwierdzić utworzony / edytowany plik git ignore jak każdy inny plik.
Kalzem
25

Kliknij plik prawym przyciskiem myszy → IgnorujIgnoruj ​​wszystko poniżej .

Jeśli opcja Ignoruj jest wyszarzona, to:

  1. Najpierw przygotuj plik
  2. Kliknij prawym przyciskiem myszy → Zatrzymaj śledzenie
  3. Ten plik pojawi się w okienku poniżej ze znakiem zapytania → Kliknij prawym przyciskiem myszy → Ignoruj

Tutaj wprowadź opis obrazu

Andrei Karcheuski
źródło
7

O ile wiem, Git nie śledzi folderów, tylko pliki - więc nie można zatwierdzić pustych folderów (lub folderów, w których wszystkie pliki są ignorowane). Jeśli na przykład chcesz, aby folder był obecny z powodu jakiegoś etapu procesu kompilacji, być może możesz zamiast tego utworzyć go za pomocą narzędzia do budowania? Lub możesz umieścić jeden pusty, niezignorowany plik w folderze i zatwierdzić go.

Aasmund Eldhuset
źródło
1
Masz na myśli to, że jeśli chcę śledzić folder, muszę dodać „fikcyjny” plik i zignorować resztę? : - /
rubdottocom
2
@rubdottocom: Myślę, że tak; foldery istnieją w git tylko ze względu na znajdujące się w nich pliki. Dlaczego musisz mieć kontrolowaną wersję pustego folderu?
Aasmund Eldhuset
2
Istnieje wiele powodów śledzenia pustych folderów. Możesz chcieć, aby przy kasie folder był gotowy do użytku przez ludzi, bez konieczności tworzenia ich indywidualnie. Twój kod może zależeć od istnienia określonego folderu, na przykład folderu, który oczekuje na załadowanie, a jeśli folder nie istnieje, nie uda mu się przesłać tam plików itp ...
Billy Moon
Z powodu wyjaśnionego przez @AasmundEldhuset odpowiedź udzielona przez Gergo ma właściwe rozwiązanie.
Billy Moon
@BillyMoon: Zgadzam się, że mogą istnieć powody; Zastanawiałem się, jakie są jego szczególne potrzeby, abyśmy mogli zaproponować najbardziej odpowiednie rozwiązanie. :-) Sztuczka Gergo była fajna, chociaż sprowadza się do dodania (mniej więcej) fikcyjnego pliku do folderu, tak jak zasugerowałem. Jego rozwiązanie było jednak bardziej bzdurne, więc +1 dla niego.
Aasmund Eldhuset
5

Po tym, jak biłem się nad tym głową przez co najmniej godzinę, oferuję tę odpowiedź, aby spróbować rozwinąć komentarze niektórych innych. Aby zignorować folder / katalog, wykonaj następujące czynności: jeśli nie masz pliku .gitignore w katalogu głównym projektu (ta nazwa to dokładnie „.gitignore”), utwórz fikcyjny plik tekstowy w folderze, który chcesz wykluczyć. Wewnątrz drzewa źródłowego kliknij je prawym przyciskiem myszy i wybierz Ignoruj. Otrzymasz wyskakujące okienko, które wygląda tak.

wprowadź opis obrazu tutaj

Wybierz „Wszystko poniżej” i z listy rozwijanej wybierz folder, który chcesz zignorować. Spowoduje to utworzenie pliku .gitignore w katalogu głównym i umieszczenie w nim specyfikacji folderu.

Jeśli masz już folder .gitignore w folderze głównym, możesz postępować zgodnie z powyższym podejściem lub po prostu edytować plik .gitignore i dodać folder, który chcesz wykluczyć. To tylko plik tekstowy. Zauważ, że używa on ukośników w nazwach ścieżek zamiast ukośników odwrotnych, do czego jesteśmy przyzwyczajeni użytkownicy systemu Windows. Próbowałem ręcznie utworzyć plik tekstowy .gitignore w Eksploratorze Windows, ale nie pozwolił mi on utworzyć pliku bez nazwy (tj. Tylko z rozszerzeniem).

Zauważ, że dodanie .gitignore i specyfikacji pliku nie będzie miało wpływu na pliki, które są już śledzone. Jeśli już je śledzisz, musisz przestać je śledzić. (Kliknij folder lub plik prawym przyciskiem myszy i wybierz opcję Zatrzymaj śledzenie). Następnie zobaczysz, jak zmieniają się z zielonej / czystej lub bursztynowej / zmienionej ikony na czerwoną / usuniętą ikonę. Przy następnym zatwierdzeniu pliki zostaną usunięte z repozytorium, a następnie pojawią się z niebieską / ignorowaną ikoną. Inny współpracownik zapytał, dlaczego Ignoruj ​​zostało wyłączone dla określonych plików i wydaje mi się, że było to spowodowane próbą zignorowania pliku, który był już śledzony. Możesz zignorować tylko plik, który ma niebieską ikonę znaku zapytania.

Karl Hoaglund
źródło
Aby utworzyć plik .gitignore w Widnows, użyj polecenia Git bash „touch .gitignore”
Mikee
4

Jak wspominali inni: git nie śledzi folderów, tylko pliki.

Możesz upewnić się, że folder istnieje za pomocą tych poleceń (lub równoważnej logiki):

echo "*" > keepthisfolder/.gitignore
git add --force keepthisfolder/.gitignore
git commit -m "adding git ignore file to keepthisfolder"

Istnienie pliku oznacza, że ​​każdy, kto wyewidencjonuje repozytorium, będzie miał ten folder.

Zawartość pliku gitignore oznacza, że ​​wszystko w nim jest ignorowane

Zdajesz nie trzeba nie-zignorować samego pliku .gitignore . Jest to reguła, która nie służyłaby żadnemu celowi raz popełniona.

LUB

jeśli wolisz przechowywać wszystkie definicje ignorowania w tym samym miejscu, możesz utworzyć .gitignore w katalogu głównym swojego projektu z taką zawartością:

*.tmp # example, ignore all .tmp files in any folder
path/to/keepthisfolder
path/to/keepthatfolder

i upewnić się, że foldery istnieją

touch path/to/keepthisfolder/anything
git add --force path/to/keepthisfolder/anything
git commit -m "ensure keepthisfolder exists when checked out"

„cokolwiek” może być dosłownie wszystkim. Często używane nazwy to .gitignore, .gitkeep, puste.

AD7six
źródło
3

Jeśli opcja Ignoruj jest wyszarzona, musisz zatrzymać śledzenie pliku, zanim będziesz mógł go zignorować. Możesz po prostu kliknąć plik prawym przyciskiem myszy i nacisnąć „Zatrzymaj śledzenie”.

Obok powinna pojawić się niebieska ikona. Kliknij ponownie prawym przyciskiem myszy i kliknij ignoruj.

LeRoy
źródło
2

Ignoruj ​​pełny folder w drzewie źródłowym.

   Just Open Repository >Repository setting > Edit git ignore File and 
   you can rite some thing like this :

 *.pdb 
*.bak 
*.dll
*.lib 
.gitignore
packages/ 
*/bin/
*/obj/ 

W przypadku folderu bin i folderu obj napisz: * / bin / * / obj /

Rajesh Kumar
źródło
0
  • Ignoruj ​​wszystkie pliki w folderze za pomocą Gita w Sourcetree:

Zignoruj ​​wszystkie pliki w folderze za pomocą Gita w Sourcetree

Yatko
źródło
-2

W Sourcetree: Po prostu zignoruj ​​plik w określonym folderze. Sourcetree zapyta, czy chcesz zignorować wszystkie pliki w tym folderze. Jest doskonały!

AVEbrahimi
źródło
14
-1 Bezcelowa odpowiedź. Ponieważ nie wyjaśniasz, jak zignorować (w drzewie źródłowym)!
Inżynier