Git menambahkan semua file yang dimodifikasi, dihapus, dan tidak dilacak?

256

Apakah ada cara untuk menambahkan semua file tidak peduli apa yang Anda lakukan pada mereka apakah itu dihapus, tidak dilacak, dll? suka untuk komit. Saya hanya tidak ingin harus git addatau git rmsemua file saya setiap kali saya komit, terutama ketika saya sedang mengerjakan produk besar.

INSANENEIVIESIS
sumber

Jawaban:

307

Mencoba:

git add -A

Peringatan: Dimulai dengan git 2.0 (pertengahan 2013), ini akan selalu menampilkan file di seluruh pohon kerja .
Jika Anda ingin memformat file di bawah jalur pohon kerja Anda saat ini, Anda perlu menggunakan:

git add -A .

Lihat juga: Perbedaan git add -Adangit add .

Kilanash
sumber
ini tidak berhasil untuk saya ... bagaimana saya bisa menunjukkan input-output terminal saya dalam diskusi ini? salin-tempel keluaran terminal saya sebagai jawaban untuk diskusi ini?
Rakib
di sini adalah masalah yang saya hadapi - stackoverflow.com/q/7726131/636762 - tolong bantu saya yang satu ini
Rakib
Ini juga tidak bisa berfungsi jika versi git Anda sudah tua. Saya menjalankan skrip pada server yang menjalankan git 1.5.2.5. git add -A tidak berfungsi. Dari skrip, tidak ada pesan kesalahan yang dilaporkan. Hanya dari baris perintah yang saya temukan bahwa -A bukan opsi hukum untuk ditambahkan.
Eponim
tetapi mengapa saya harus menambahkan file setiap kali saya ingin membuat komit !? Setiap kali saya membuat perubahan pada file, saya harus menambahkannya ..
Frade
3
Beginilah cara Git bekerja. Anda harus menambahkan perubahan ke area pementasan Anda sebelum Anda komit. Misalnya, Anda dapat menambahkan hanya beberapa file ke komit dan memberikan komentar untuk itu, alih-alih semua file sepanjang waktu. Berikut adalah penjelasan praktis tentang apa yang dilakukan dan mengapa: gitready.com/beginner/2009/01/18/the-staging-area.html
Kilanash
75

Mencoba

git add -u

Opsi " u" adalah singkatan dari pembaruan. Ini akan memperbarui repo dan benar-benar menghapus file dari repo yang telah Anda hapus dalam salinan lokal Anda.

git add -u [filename]

untuk melakukan tahap hapus menjadi hanya satu file. Setelah didorong, file tidak akan lagi di repo.

Kalau tidak,

git add -A .

setara dengan

git add .

git add -u .

Catat ekstra '.' pada git add -Adangit add -u


Peringatan: Dimulai dengan git 2.0 (pertengahan 2013), ini akan selalu menampilkan file di seluruh pohon kerja .
Jika Anda ingin memformat file di bawah jalur pohon kerja Anda saat ini, Anda perlu menggunakan:

git add -A .

Lihat juga: Perbedaan git add -Adangit add .

Matt Kneiser
sumber
42

Jawaban berikut hanya berlaku untuk Git versi 1.x, tetapi untuk Git versi 2.x.

Anda ingin git add -A:

git add -A tahapan Semua;

git add . tahapan baru dan dimodifikasi, tanpa dihapus;

git add -u tahapan dimodifikasi dan dihapus, tanpa yang baru.

terima kasih
sumber
Catatan di atas hanya berlaku untuk Git 1.x. Untuk git versi 2.x, git add -Asetara dengan git add .. Lihat di sini untuk diskusi lebih lanjut.
jdhao
27

git add --all atau git add -A atau git add -A . Tahapan Semua

git add . Tahapan Baru & Dimodifikasi Namun Tanpa Dihapus

git add -u Tahapan Dimodifikasi & Dihapus Tapi Tanpa Baru

git commit -aBerarti git add -uDangit commit -m "message"

Setelah menulis perintah ini ikuti langkah-langkah berikut: -

  1. tekan i
  2. tulis pesan Anda
  3. tekan esc
  4. tekan :wq
  5. tekan enter

git add <list of files> tambahkan file tertentu

git add *.txt tambahkan semua file txt di direktori saat ini

git add docs/*/txt tambahkan semua file txt di direktori dokumen

git add docs/ tambahkan semua file dalam direktori dokumen

git add "*.txt"atau git add '*.txt'tambahkan semua file di seluruh proyek

akshay_rahar
sumber
12

Saya tidak yakin apakah itu akan menambahkan file yang dihapus, tetapi git add .dari root akan menambahkan semua file yang tidak terlacak.

bcherry
sumber
lihat jawaban saya tentang cara menambahkan file yang dihapus
Matt Kneiser
5

Ini adalah alternatif saya (dalam bash apa pun):

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

Untuk mengatur ulang

$ git status -s|awk '{ print $2 }'|xargs git reset HEAD
Giacomo Tesio
sumber
5

Saya menulis proyek G2, lingkungan yang ramah untuk kekasih command line git.
Silakan dapatkan proyek dari github - G2 https://github.com/orefalo/g2

Ini memiliki banyak perintah praktis, salah satunya persis apa yang Anda cari: freeze

membekukan - Membekukan semua file dalam repositori (penambahan, penghapusan, modifikasi) ke area pementasan, sehingga pementasan konten itu untuk dimasukkan dalam komit berikutnya. Juga terima jalur tertentu sebagai parameter

Olivier Refalo
sumber
5

Untuk versi Git yang lebih baru .

Saya mencoba git add -Adan ini mendorong,

peringatan: Perilaku 'git add --all (atau -A)' tanpa argumen jalur dari subdirektori dari pohon akan berubah di Git 2.0 dan tidak boleh digunakan lagi. Untuk menambahkan konten untuk seluruh pohon, jalankan:

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

Untuk membatasi perintah ke direktori saat ini, jalankan:

git tambahkan --all. (atau git add -A.)

Dengan versi Git saat ini, perintah dibatasi ke direktori saat ini.


Kemudian saya mencoba di bawah ini yang berhasil .

git add --all :/
Parag Tyagi
sumber
3

Dari dokumentasi Git mulai dari versi 2.0:

Untuk menambahkan konten untuk seluruh pohon, jalankan:

git add --all :/

atau

git add -A :/

Untuk membatasi perintah ke direktori saat ini, jalankan:

git add --all .

atau

git add -A .
HOKBONG
sumber
2

Saya menggunakan baris berikut untuk menambahkan pementasan semua file yang dimodifikasi dan yang baru dibuat, tidak termasuk yang terdaftar di .gitignore:

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

(sintaks $ () untuk bash shell). Saya kira opsi baris perintah -mod harus menambahkan juga file yang dihapus ... Atau, jika Anda memiliki nama file dengan kosong yang disematkan, baris berikut harus melakukan trik:

git ls-files -z --deleted --modified --others --exclude-standard | xargs -0 git add
Maurizio Loreti
sumber