Jakie są różnice między .gitignore
i .gitkeep
? Czy mają to samo pod inną nazwą, czy oboje pełnią inną funkcję?
Wydaje mi się, że nie jestem w stanie znaleźć dużo dokumentacji .gitkeep
.
.gitkeep
nie jest udokumentowane, ponieważ nie jest to funkcja Git.
Git nie może dodać całkowicie pustego katalogu . Ludzie, którzy chcą śledzić puste katalogi w Git, opracowali konwencję umieszczania plików wywoływanych .gitkeep
w tych katalogach. Plik można nazwać czymkolwiek; Git nie przypisuje tej nazwie żadnego specjalnego znaczenia.
Istnieje konkurencyjna konwencja dodawania .gitignore
pliku do pustych katalogów w celu ich śledzenia, ale niektórzy uważają to za mylące, ponieważ celem jest zachowanie pustych katalogów, a nie ignorowanie ich; .gitignore
służy również do wyświetlania listy plików, które Git powinien zignorować, szukając nieśledzonych plików.
README
pliku w innym pustym podkatalogu, który zawiera trochę informacji o tym, do czego będzie używany ten podkatalog? Wydaje się mylące, że plik o nazwie.gitkeep
tak naprawdę nie jest częścią git..gitignore
Plik z dwoma liniami:*
i!.gitignore
jest bardziej niż wystarczająco przejrzysty, aby przekazać, co się dzieje. Jeśli potrzebne jest dalsze opracowanie, dodaj komentarz na początku pliku, używając#
składni..keep
plików zamiast.gitkeep
zachowywać te puste foldery, ponieważ git nie jest jedynym systemem kontroli źródła, który nie śledzi pustych folderów. Więcej informacji tutaj: github.com/rails/rails/issues/2800.gitkeep
jest tylko symbolem zastępczym. Plik fikcyjny, więc Git nie zapomni o katalogu, ponieważ Git śledzi tylko pliki.Jeśli chcesz mieć pusty katalog i upewnić się, że pozostaje on „czysty” dla Git, utwórz w
.gitignore
nim następujący wiersz:Jeśli chcesz, aby Git był widoczny tylko jeden typ plików, oto przykład, jak odfiltrować wszystko, oprócz .gitignore i wszystkich
.txt
plików:(„#” oznacza komentarze.)
źródło
!
przed.gitignore
? Czy to po to, by uciec przed kropką?!
neguje następną część, jak zwykle w programowaniu.!.gitignore
pliku git ignore, ani dodawania pliku, ani edytowania go, ani wymuszania dodawania go z odpowiednią zawartością („*”, aby zignorować wszystko lub nic, aby po prostu upewnić się, że folder istnieje). Dalszy przykład .Since the git ignore file is already in the repo it is not necessary to not-ignore it - it is already tracked.
------ Jeśli tak nie jest, a nie dodajesz siły, możesz o tym zapomnieć. W trywialnych przypadkach nie ma problemu, ale jeśli jest to większy plik, możesz być zdenerwowany. Używanie!.gitignore
zapobiega strzelaniu sobie w stopę. Wolę to, bo się kiedyś spaliłem.to plik tekstowy zawierający listę plików w twoim katalogu, które git zignoruje lub nie doda / zaktualizuje w repozytorium.
Ponieważ Git usuwa lub nie dodaje pustych katalogów do repozytorium, .gitkeep jest rodzajem włamania (nie sądzę, że jest oficjalnie nazwany jako część Git), aby utrzymać puste katalogi w repozytorium.
Po prostu zrób to,
touch /path/to/emptydirectory/.gitkeep
aby dodać plik, a Git będzie mógł teraz utrzymywać ten katalog w repozytorium.źródło
.gitignore
s, ile chcesz, jeśli nie chcesz za każdym razem określać pełnej ścieżki do każdego folderu..gitkeep
pliku, ale nie będzie śledzić pustych katalogów, Tylko ścieżka do folderu, w którym.gitkeep
istnieje plik. dlaczego tak ?.gitignore
uratowałyby Cię przed określeniem pełnej ścieżki do każdego folderu za każdym razem? Myślę, że brakuje mi czegoś oczywistego.