Git dodać wszystkie pliki zmodyfikowane, usunięte i nieśledzone?


256

Czy istnieje sposób dodania wszystkich plików bez względu na to, co zrobisz, niezależnie od tego, czy zostaną one usunięte, nieśledzone itp.? jak na zatwierdzenie. Po prostu nie chcę mieć git addani git rmwszystkich moich plików za każdym razem, gdy to robię, zwłaszcza gdy pracuję nad dużym produktem.


Odpowiedzi:


307

Próbować:

git add -A

Ostrzeżenie: Począwszy od git 2.0 (połowa 2013 r.), Zawsze będzie to ustawianie plików na całym działającym drzewie .
Jeśli chcesz umieszczać pliki pod bieżącą ścieżką działającego drzewa, musisz użyć:

git add -A .

Zobacz także: Różnica między git add -Aigit add .


to nie działało dla mnie ... jak mogę pokazać moje wejście-wyjście w tej dyskusji? skopiuj-wklej mój wynik końcowy jako odpowiedź na tę dyskusję?
Rakib

oto problem, przed którym stoję - stackoverflow.com/q/7726131/636762 - uprzejmie pomóż mi w tej sprawie
Rakib

Może to również nie działać, jeśli Twoja wersja git jest stara. Uruchomiłem skrypt na serwerze, na którym działał git 1.5.2.5. git add -A nie działało. Ze skryptu nie zgłoszono żadnego komunikatu o błędzie. Dopiero z wiersza poleceń odkryłem, że -A nie było legalną opcją dodawania.
Tytułowy

ale dlaczego muszę dodawać pliki za każdym razem, gdy chcę dokonać zatwierdzenia !? Za każdym razem, gdy wprowadzam zmiany w plikach, muszę je dodać.
Frade

3
Właśnie tak działa Git. Przed dokonaniem zmiany musisz dodać zmiany do obszaru przeciwności. Na przykład, możesz dodawać tylko niektóre pliki do zatwierdzenia i dodawać do nich komentarze, zamiast wszystkich plików przez cały czas. Oto przydatne wyjaśnienie tego, co to robi i dlaczego: gitready.com/beginner/2009/01/18/the-staging-area.html
Kilanash

75

Próbować

git add -u

Opcja „ u” oznacza aktualizację. Spowoduje to zaktualizowanie repozytorium i faktycznie usunie pliki z repozytorium, które zostały usunięte w lokalnej kopii.

git add -u [filename]

aby wprowadzić etap usuwania do jednego pliku. Po wypchnięciu plik nie będzie już w repozytorium.

Alternatywnie,

git add -A .

jest równa

git add .

git add -u .

Zwróć uwagę na dodatkowe „.” na git add -Aigit add -u


Ostrzeżenie: Począwszy od git 2.0 (połowa 2013 r.), Zawsze będzie to ustawianie plików na całym działającym drzewie .
Jeśli chcesz umieszczać pliki pod bieżącą ścieżką działającego drzewa, musisz użyć:

git add -A .

Zobacz także: Różnica między git add -Aigit add .


42

Poniższa odpowiedź dotyczy tylko wersji Git 1.x, ale wersji Git 2.x.

Chcesz git add -A:

git add -A etapy Wszystkie;

git add . etapy nowe i zmodyfikowane, bez usunięcia;

git add -u etapy zmodyfikowane i usunięte, bez nowych.


Uwaga: powyższe dotyczy tylko Git 1.x. Dla git w wersji 2.x git add -Ajest równoważne z git add .. Zobacz tutaj, aby uzyskać więcej dyskusji.
jdhao

27

git add --all lub git add -A lub git add -A . Etapy Wszystkie

git add . Etapy nowe i zmodyfikowane, ale bez usunięcia

git add -u Etapy zmodyfikowane i usunięte, ale bez nowych

git commit -aOznacza git add -uigit commit -m "message"

Po napisaniu tego polecenia wykonaj następujące kroki: -

  1. naciśnij i
  2. napisz swoją wiadomość
  3. naciśnij esc
  4. naciśnij :wq
  5. naciśnij enter

git add <list of files> dodaj określony plik

git add *.txt dodaj wszystkie pliki txt w bieżącym katalogu

git add docs/*/txt dodaj wszystkie pliki txt do katalogu docs

git add docs/ dodaj wszystkie pliki do katalogu docs

git add "*.txt"lub git add '*.txt'dodaj wszystkie pliki w całym projekcie


12

Nie jestem pewien, czy doda usunięte pliki, ale git add .z katalogu głównego doda wszystkie nieśledzone pliki.


zobacz moją odpowiedź na temat dodawania usuniętych plików
Matt Kneiser

5

Oto moja alternatywa (w dowolnej bash):

$ git status -s|awk '{ print $2 }'|xargs git add

Zresetować

$ git status -s|awk '{ print $2 }'|xargs git reset HEAD

5

Byłem autorem projektu G2, przyjaznego środowiska dla miłośnika git z wiersza poleceń.
Proszę pobrać projekt z github - G2 https://github.com/orefalo/g2

Zawiera wiele przydatnych poleceń, z których jednym jest dokładnie to, czego szukasz: freeze

zamrożenie - Zamrożenie wszystkich plików w repozytorium (uzupełnienia, usunięcia, modyfikacje) w obszarze przemieszczania, w ten sposób przemieszczając zawartość do włączenia w następnym zatwierdzeniu. Zaakceptuj również określoną ścieżkę jako parametr


5

Dla nowszej wersji Git.

Próbowałem git add -Ai to zachęciło,

ostrzeżenie: Zachowanie „git add --all (lub -A)” bez argumentu ścieżki z podkatalogu drzewa zmieni się w Git 2.0 i nie powinno być już używane. Aby dodać zawartość do całego drzewa, uruchom:

git add --all: / (lub git add -A: /)

Aby ograniczyć polecenie do bieżącego katalogu, uruchom:

git add --all. (lub git dodaj -A.)

W bieżącej wersji Git polecenie jest ograniczone do bieżącego katalogu.


Potem próbowałem poniżej, który zadziałał .

git add --all :/

3

Z dokumentacji Git od wersji 2.0:

Aby dodać zawartość do całego drzewa, uruchom:

git add --all :/

lub

git add -A :/

Aby ograniczyć polecenie do bieżącego katalogu, uruchom:

git add --all .

lub

git add -A .

2

Używam następującego wiersza, aby dodać do przemieszczania wszystkich zmodyfikowanych i nowo utworzonych plików, z wyjątkiem tych wymienionych w .gitignore:

git add $(git ls-files -mo --exclude-standard)

(składnia $ () dotyczy powłoki bash). Wydaje mi się, że opcja wiersza poleceń -mod powinna również dodawać usunięte pliki ... Lub, jeśli masz nazwy plików z osadzonymi odstępami, następująca linijka powinna załatwić sprawę:

git ls-files -z --deleted --modified --others --exclude-standard | xargs -0 git add
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.