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ć?
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ć?
Odpowiedzi:
Dodaj to do .gitignore:
*
!.gitignore
.gitginore
jest to zwykły plik, po prostu utwórz go w katalogu, którego zawartość chcesz zignorować.
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>”
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.
Kliknij plik prawym przyciskiem myszy → Ignoruj → Ignoruj wszystko poniżej .
Jeśli opcja Ignoruj jest wyszarzona, to:
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.
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.
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.
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.
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.
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 /
W Sourcetree: Po prostu zignoruj plik w określonym folderze. Sourcetree zapyta, czy chcesz zignorować wszystkie pliki w tym folderze. Jest doskonały!
*
środki ignorować wszystkie pliki, a!.gitignore
środki nie ignoruj sam plik