Chcę zatwierdzić wszystkie pliki oprócz jednego pliku. Czy mogę to zrobić za pomocą GitHub dla klienta Windows lub czy muszę użyć wiersza poleceń? Jeśli potrzebuję korzystać z wiersza poleceń, jak go używać?Jak zatwierdzić wszystkie pliki poza jednym w GitHub dla Windows
Odpowiedz
O ile mi wiadomo, nie jest to możliwe bez użycia powłoki git/wiersza poleceń. W powłoce Git masz kilka opcji. Wszystkie dają nieco inny wynik.
Jeśli tylko chcesz wykluczyć plik dla trochę czasu (może jeden commit) i dodać go w przyszłości popełnić można wykonać następujące polecenia:
git add . git reset filename git commit -m "commit message"
Pierwsze polecenie dodaje wszystkie pliki do obszaru pomostowego. Then the second command removes the one file from the staging area. This means the file is not added in the commit but the changes to it are preserved on your local drive.
Jeśli plik jest już zaangażowana w repozytorium, ale tylko sporadycznie chcą popełniania dalszych zmian w pliku, można użyć
git update-index --assume-unchanged
w ten sposób:`git update-index --assume-unchanged filename`
Jeśli następnie zmienić plik lokalnie nie zostanie dodane do obszaru przemieszczania, gdy wykonasz coś, aby dodać wszystkie pliki, takie jak
git add .
. When, after some time, you want to commit changes to the file again, you can rungit update-index --no-assume-unchanged filename
to stop ignoring the changes.Możesz użyć pliku
.gitignore
, jeśli nie chcesz w ogóle śledzić pliku. To ignore a file namedfilename
you create, or edit, a file called.gitignore
. Putfilename
on a line of its own to ignore that file. Teraz plik nie zostanie dodany do obszaru pomostowego po wykonaniugit add .
. Uwaga: Jeśli plik jest już zaznaczony, musisz go usunąć z repozytorium, aby zacząć go ignorować. Wykonaj następujące właśnie do tego:`git rm --cached filename`
The
--cached
option specifies that the file should only be removed from the index. lokalnego pliku, czy zmieniona lub nie, pozostanie taka sama. Możesz dodać plik.gitignore
i zatwierdzić, aby plik został zignorowany na innych komputerach z tym samym repozytorium.Jeśli chcesz zignorować nieskonowany plik, ale nie chcesz udostępniać tego ignorowania innym uczestnikom repozytorium, możesz umieścić nazwy zignorowanych plików w pliku
.git/info/exclude
. Katalog.git
jest zwykle ukryty, ale możesz go pokazać, zmieniając opcje folderów. Podobnie jak w przypadku pliku.gitignore
, musisz wykonaćgit rm --cached filename
, jeśli plik został już pobrany przez poprzednie zatwierdzenie.
Kilka uwag:
- Zmiany
filename
do rzeczywistej nazwy pliku, który chcesz wykluczyć. - Zamiast wykluczać pojedynczy plik, można również wykluczyć pełny katalog. Możesz to zrobić, po prostu wstawiając nazwę katalogu w miejsce
filename
. - Łatwym sposobem uruchomienia powłoki Git jest uruchomienie programu GitHub dla systemu Windows, kliknięcie prawym przyciskiem myszy projektu, w którym chcesz wykluczyć/zignorować plik i wybrać opcję
Open in Git Shell
. Teraz jesteś w katalogu głównym repozytorium git i możesz zacząć wykonywać polecenia, które są pokazane i opisane w tej odpowiedzi.
Dziękuję. Zadziałało. –
Niezwykle dobra informacja. Dziękuję bardzo! – adelineu
chciałbym wykonać następujące czynności:
git add .
git checkout filename
git commit -m "commit message"
Pierwsza linia dodaje wszystkie pliki na liście, a druga linia usuwa plik, określić, gdzie „nazwa pliku” powinna być nazwa pliku nie chcesz w swoim zatwierdzeniu.
Albo
git checkout filename
git commit -am "commit message"
git commit -am dodaje pliki i robi commit wiadomość w tym samym czasie.
A jeśli trzeba usunąć zmiany wprowadzone w ostatnim pliku:
git stash -u
Tak, można to zrobić za pośrednictwem klienta –
http://stackoverflow.com/questions/4475457/add-all -files-to-a-commit-except-a-single-file Sprawdź ten link. To może ci pomóc. – user3269886
Dzięki za sugestię, ale polecenie usuwa wszystkie zmodyfikowane pliki. Chcę tylko zatwierdzić wszystkie oprócz jednego pliku, a plik powinien mieć zmiany. –