Pracuję pierwszy raz na git. Wrzuciłem swoją gałąź na github, a cała biblioteka i dokumenty zostały umieszczone na githubie. Teraz co mogę zrobić i jak mogę użyć polecenia gitignore, aby ponownie uniknąć tego samego błędu.
.gitignoreto plik w katalogu głównym git. Dodaj wzorce nazw dla plików, które chcesz zignorować, a pliki zostaną automatycznie zignorowane.
LonelyWebCrawler
Jestem na ubuntu. Czy możesz
podać
2
To jest katalog, w którym użyłeś git init. .gitKatalogu znajduje się tam.
LonelyWebCrawler
2
Dla tych, którzy nie wiedzą, jak używać gitignore - przejdź do gitignore.io i możesz wpisać wszystkie używane narzędzia (symfony, CakePHP, ZendFramework, wordpress, grunt, sublime text, netbeans, itd., Otrzymasz wiertło ...) i wygeneruje dla Ciebie plik ignorowania git. Jeśli nie wiesz, jak używać gitignore, myślę, że najlepszym sposobem na nauczenie się tego jest przyjrzenie się dobrym przykładom przypadków użycia (jak ten wygenerowany przez gitignore.io. Jeśli chcesz go używać z wiersza cmd (geeky sposób ) zobacz samouczek: vimeo.com/70609819
DevWL
Odpowiedzi:
162
Na podstawie tego, co powiedziałeś, te pliki to biblioteki / dokumentacja, których nie chcesz usuwać, ale także nie chcesz do nich przesyłać github. Powiedzmy, że masz swój projekt w folderze your_projecti katalogu doc: your_project/doc.
Usuń go z katalogu projektu (bez faktycznego usuwania):
git rm --cached doc/*
Jeżeli nie masz jeszcze .gitignoremożna zrobić jeden prawy wewnątrz folderu projektu: project/.gitignore.
Umieść doc/*w .gitignore
Przygotuj plik do zatwierdzenia: git add project/.gitignore
czy możesz mi powiedzieć, jak napisać plik .gitignore. tj. jak napisać ścieżkę do folderów i plików, które chcę zignorować w pliku .gitignore. Dzięki
user1559230
Dziękuję za odpowiedź. Przed zatwierdzeniem musiałem uruchomić git add -A
user1559230
4
Cześć, gitignore to zwykły plik tekstowy. W rzeczywistości jest to .gitignore (DOTgitignore). Po prostu wpisz nazwę pliku / typu plików, które chcesz ignorować, po jednym w każdym wierszu. Przykład: sujee.net/tech/articles/gitignore
Nie ma potrzeby, aby touchnajpierw plik był. >>jest równoznaczne z tym >, że plik już nie istnieje. echodołącza nową linię na końcu wyjścia. Możesz to zatrzymać -n. Jeśli potrzebujesz różnych ignoruje, albo robić różne echo lub użyć -e, jak następuje: echo -e "**/cache/\n**.pyc" >> .gitignore. Podwójna gwiazdka odpowiada również rekursywnie wszystkim plikom wkopywanym do folderów. Użyj /na końcu folderów, na wszelki wypadek.
mazunki
1
@Andrew tl; dr: Dodaj każdy zignorowany plik za pomocą echo "file_to_be_ignored" >> .gitignore, nie musisz robić nic więcej. Nazwy folderów zakończ /jako echo "**/modules/" >> .gitignore.
mazunki
Dlaczego mój komentarz został usunięty
Andrzej
12
git ignore to konwencja w git. Ustawienie pliku o nazwie .gitignore
zignoruje pliki w tym katalogu i głębszych katalogach, które pasują do wzorców zawartych w pliku. Najczęstszym zastosowaniem jest posiadanie tylko jednego takiego pliku na najwyższym poziomie. Ale możesz dodać inne głębiej w strukturze katalogów, aby zignorować jeszcze więcej wzorców lub przestać ignorować je dla tego katalogu, a następnie głębszych.
Podobnie, możesz „zrezygnować” z ignorowania pewnych plików w głębszej strukturze lub określonym podzbiorze (tj. Ignorujesz * .log, ale nadal chcesz śledzić ważne.log), określając wzorce zaczynające się od !. na przykład:
*.log !important.log
zignoruje wszystkie pliki dziennika, ale śledzi pliki o nazwie ważne.log
Jeśli śledzisz pliki, które chciałeś zignorować, usuń je, dodaj wzorzec do pliku .gitignore i dodaj wszystkie zmiany
# delete files that should be ignored, or untrack them with
# git rm --cached <file list or pattern>
# stage all the changes git commit
git add -A
od teraz twoje repozytorium nie będzie ich śledzić.
Jeśli chcesz wyczyścić swoją historię, możesz
# if you want to correct the last 10 commits
git rebase -i --preserve-merges HEAD~10
następnie zaznacz każde zatwierdzenie za pomocą elub edit. Zapisz plan. Teraz git odtworzy twoją historię zatrzymując się przy każdym zatwierdzeniu zaznaczonym przez e. Tutaj usuwasz niepotrzebne pliki, git add -Aa potem git rebase --continueaż skończysz. Twoja historia będzie czysta. Upewnij się, że powiesz współpracownikom, ponieważ będziesz musiał wymusić nacisk, a oni będą musieli zmienić bazę tego, czego jeszcze nie forsowali.
W katalogu głównym git znajduje się plik o nazwie .gitignore. To plik, a nie polecenie. Wystarczy wpisać nazwy plików, które chcesz zignorować, a zostaną one automatycznie zignorowane. Na przykład, jeśli chcesz zignorować wszystkie pliki autozapisu emacsa, które kończą się na ~, możesz dodać tę linię:
Uwaga: To, co nazwałem „katalogiem głównym git”, to po prostu katalog, w którym byłeś użyty git initpo raz pierwszy. Tutaj również możesz znaleźć .gitkatalog.
kiedy umieściłem plik .gitignore w folderze mojego projektu, lokalnie zepsuło to mój projekt zaćmienia. czy wiesz, dlaczego tak się mogło stać i jak temu zapobiec? na razie trzymam się z dala od .gitignore.
.gitignore
to plik w katalogu głównym git. Dodaj wzorce nazw dla plików, które chcesz zignorować, a pliki zostaną automatycznie zignorowane.git init
..git
Katalogu znajduje się tam.Odpowiedzi:
Na podstawie tego, co powiedziałeś, te pliki to biblioteki / dokumentacja, których nie chcesz usuwać, ale także nie chcesz do nich przesyłać
github
. Powiedzmy, że masz swój projekt w folderzeyour_project
i katalogu doc:your_project/doc
.git rm --cached doc/*
.gitignore
można zrobić jeden prawy wewnątrz folderu projektu:project/.gitignore
.doc/*
w .gitignoregit add project/.gitignore
git commit -m "message"
.github
.źródło
Jeśli nie masz pliku .gitignore, najpierw użyj:
następnie to polecenie, aby dodać linie do pliku gitignore:
źródło
touch
najpierw plik był.>>
jest równoznaczne z tym>
, że plik już nie istnieje.echo
dołącza nową linię na końcu wyjścia. Możesz to zatrzymać-n
. Jeśli potrzebujesz różnych ignoruje, albo robić różne echo lub użyć-e
, jak następuje:echo -e "**/cache/\n**.pyc" >> .gitignore
. Podwójna gwiazdka odpowiada również rekursywnie wszystkim plikom wkopywanym do folderów. Użyj/
na końcu folderów, na wszelki wypadek.echo "file_to_be_ignored" >> .gitignore
, nie musisz robić nic więcej. Nazwy folderów zakończ/
jakoecho "**/modules/" >> .gitignore
.git ignore to konwencja w git. Ustawienie pliku o nazwie
.gitignore
zignoruje pliki w tym katalogu i głębszych katalogach, które pasują do wzorców zawartych w pliku. Najczęstszym zastosowaniem jest posiadanie tylko jednego takiego pliku na najwyższym poziomie. Ale możesz dodać inne głębiej w strukturze katalogów, aby zignorować jeszcze więcej wzorców lub przestać ignorować je dla tego katalogu, a następnie głębszych.Podobnie, możesz „zrezygnować” z ignorowania pewnych plików w głębszej strukturze lub określonym podzbiorze (tj. Ignorujesz * .log, ale nadal chcesz śledzić ważne.log), określając wzorce zaczynające się od
!
. na przykład:zignoruje wszystkie pliki dziennika, ale śledzi pliki o nazwie ważne.log
Jeśli śledzisz pliki, które chciałeś zignorować, usuń je, dodaj wzorzec do pliku .gitignore i dodaj wszystkie zmiany
od teraz twoje repozytorium nie będzie ich śledzić.
Jeśli chcesz wyczyścić swoją historię, możesz
następnie zaznacz każde zatwierdzenie za pomocą
e
lubedit
. Zapisz plan. Teraz git odtworzy twoją historię zatrzymując się przy każdym zatwierdzeniu zaznaczonym przez e. Tutaj usuwasz niepotrzebne pliki,git add -A
a potemgit rebase --continue
aż skończysz. Twoja historia będzie czysta. Upewnij się, że powiesz współpracownikom, ponieważ będziesz musiał wymusić nacisk, a oni będą musieli zmienić bazę tego, czego jeszcze nie forsowali.źródło
W katalogu głównym git znajduje się plik o nazwie
.gitignore
. To plik, a nie polecenie. Wystarczy wpisać nazwy plików, które chcesz zignorować, a zostaną one automatycznie zignorowane. Na przykład, jeśli chcesz zignorować wszystkie pliki autozapisu emacsa, które kończą się na~
, możesz dodać tę linię:Jeśli chcesz usunąć niechciane pliki ze swojej gałęzi, możesz użyć
git add -A
, który " usuwa pliki, których nie ma już w drzewie roboczym ".Uwaga: To, co nazwałem „katalogiem głównym git”, to po prostu katalog, w którym byłeś użyty
git init
po raz pierwszy. Tutaj również możesz znaleźć.git
katalog.źródło
Jeśli nie masz pliku .gitignore. Możesz utworzyć nowy przez
Możesz wykluczyć folder, wprowadzając poniższe polecenie w pliku .gitignore
wrzuć ten plik do repozytorium git, aby nowa osoba nie musiała ponownie dodawać tego samego, gdy nowa osoba sklonuje Twój projekt
źródło
Istnieje kilka sposobów korzystania z gitignore git
nazwie readme.txt, wystarczy zapisać readme.txt w pliku .gitignore.
zignorować wszystkie pliki .txt, napisz * .txt.
folder o nazwie test. Następnie po prostu napisz test / w pliku.
po prostu stwórz plik .gitignore i napisz cokolwiek chcesz zignorować przykładowy plik gitignore to:
Możesz znaleźć więcej w dokumentacji git gitignore
źródło
Na moim
.gitignore_global
Macu znalazłem ten plik ... był w moim katalogu domowym ukryty, więc zrób to,ls -altr
aby go zobaczyć.Dodałem pliki eclipse, które chciałem, aby Git zignorował. zawartość wygląda następująco:
źródło