Apakah ada perintah abaikan untuk git seperti ada untuk svn?
125
Saya adalah pengguna baru gitdan saya memulai proyek baru. Saya memiliki banyak file dot yang ingin saya abaikan. Apakah ada perintah abaikan untuk gitseperti ada untuk svn?
Alternatif yang baik untuk gitignore: indeks pembaruan git --assume-tidak berubah <file> , terima kasih kepada stackoverflow.com/a/16442091/2162226
Gene Bo
Jawaban:
136
Tidak ada git ignoreperintah khusus .
Edit .gitignorefile yang terletak di tempat yang sesuai dalam copy pekerjaan. Anda kemudian harus menambahkan ini .gitignoredan melakukannya. Setiap orang yang mengkloning repo akan mengabaikan file-file itu.
Perhatikan bahwa hanya nama file yang dimulai dengan yang /relatif terhadap direktori yang .gitignoreberada. Semua yang lain akan cocok dengan file dalam subdirektori apa pun.
Anda juga dapat mengedit .git/info/excludeuntuk mengabaikan file tertentu hanya dalam satu salinan yang berfungsi. The .git/info/excludeFile tidak akan dilakukan, dan dengan demikian hanya akan berlaku secara lokal di satu salinan kerja ini.
Anda juga dapat mengatur file global dengan pola untuk diabaikan git config --global core.excludesfile . Ini akan berlaku secara lokal untuk semua copy pekerjaan git pada akun pengguna yang sama.
Jalankan git help gitignoredan baca teks untuk detailnya.
Tidak memiliki perintah pengabaian yang sederhana sepertinya merupakan pengawasan dari tim git.
jcollum
4
@ jcollum Sepintas memang demikian, tetapi kesederhanaan aliasing perintah untuk menambahkan yang baru DAN kerumitan membuat satu dan bekerja melalui semua kasus tepi / gotchas / potensi masalah mengedit file teks juga masuk akal untuk menyerahkannya ke pengguna. Saya merasa bertentangan karena saya sama-sama setuju dan tidak setuju dengan Anda.
Jadi jika saya menggunakan git abaikan "index.html" itu akan mengabaikan file ini?
JohnAndrews
Apakah perintah -t masih berlaku? Ketika saya menjalankannya, itu hanya menambahkan -t dan templat apa pun yang saya coba tambahkan ke file abaikan git
Bynho
50
Di Linux / Unix, Anda dapat menambahkan file ke file .gitignore dengan echoperintah. Misalnya jika Anda ingin mengabaikan semua .svnfolder, jalankan ini dari root proyek:
Di Git Bash pada Windows, saya perlu menambahkan /'dan' sebelumnya (untuk membuat baris baru), seperti echo /nbproject/project.properties\ >> .gitignoredan echo /nbproject/project.xml\ >> .gitignore.
Ryan
15
Anda memiliki dua cara untuk mengabaikan file:
.gitignoredalam folder apa pun akan mengabaikan file seperti yang ditentukan dalam file untuk folder itu. Menggunakan wildcard dimungkinkan.
.git/info/excludememegang pola abaikan global, mirip dengan global-ignoresfile konfigurasi dalam subversi.
Perhatikan bahwa pola dalam .gitignorefile yang tidak mengandung '/' dicocokkan secara rekursif (yaitu juga di semua subdirektori dari direktori .gitignorefile berada), bertentangan dengan kasus svn:ignoreproperti direktori di Subversion.
Jakub Narębski
6
Saya harap ini belum terlambat.
Jika Anda menggunakan Windows, Anda dapat melakukan yang berikut untuk membuat file .gitignore
Jangan gunakan itu jika Anda sudah memiliki file .gitignore, itu akan menimpanya! Untuk menambahkan file yang diabaikan, gunakan ini: echo ign.ext >> .gitignore
TomEberhard
Anda benar, disarankan untuk menggunakan hanya jika file .gitignore tidak ada. Lebih baik menggunakan "notepad .gitignore", jika Anda memiliki file .gitignore itu akan membukanya, dan jika tidak, itu akan membuatnya, dan Anda kemudian dapat menambahkan semua file dari notepad. 1 file / folder per baris
Nesar
3
Buat file bernama .gitignore di root repositori Anda. Dalam file ini Anda meletakkan path relatif ke setiap file yang ingin Anda abaikan dalam satu baris. Anda dapat menggunakan *wildcard.
Dengan menggunakan jawaban yang telah disediakan, Anda dapat menggulung git ignoreperintah Anda sendiri menggunakan alias . Tambahkan ini ke file ~ / .gitconfig Anda:
ignore = !sh -c 'echo $1 >> .gitignore' -
Atau jalankan perintah ini dari shell (* nix) pilihan Anda:
untuk nama yang tidak ada dalam copy atau repo yang berfungsi:
echo /globpattern >> .gitignore
atau untuk file yang ada (baris perintah tipe sh):
echo /$(ls -1 file) >> .gitignore # I use tab completion to select the file to be ignored
git rm -r --cached file # if already checked in, deletes it on next commit
Sangat berguna untuk mendefinisikan file .gitignore yang lengkap untuk proyek Anda. Hadiahnya adalah penggunaan aman kenyamanan --allatau -abendera untuk perintah seperti adddan commit.
Juga, pertimbangkan untuk mendefinisikan file global ~ / .gitignore untuk pola yang biasanya diabaikan seperti *~
, yang mencakup file sementara yang dibuat oleh Emacs.
Dan kemudian Anda bisa mengetik gifollowd dengan semua elemen platform / lingkungan yang Anda butuhkan untuk kriteria gitignore.
Contoh!
Katakanlah Anda sedang mengerjakan proyek simpul yang menyertakan grunt dan Anda menggunakan webstorm di linux, maka Anda mungkin ingin mengetik: gi linux,webstorm,node,grunt > .gitignore(untuk membuat file baru)
atau gi linux,webstorm,node,grunt >> .gitignore (untuk menambahkan / menambahkan aturan baru ke file yang sudah ada )
Jawaban:
Tidak ada
git ignore
perintah khusus .Edit
.gitignore
file yang terletak di tempat yang sesuai dalam copy pekerjaan. Anda kemudian harus menambahkan ini.gitignore
dan melakukannya. Setiap orang yang mengkloning repo akan mengabaikan file-file itu.Perhatikan bahwa hanya nama file yang dimulai dengan yang
/
relatif terhadap direktori yang.gitignore
berada. Semua yang lain akan cocok dengan file dalam subdirektori apa pun.Anda juga dapat mengedit
.git/info/exclude
untuk mengabaikan file tertentu hanya dalam satu salinan yang berfungsi. The.git/info/exclude
File tidak akan dilakukan, dan dengan demikian hanya akan berlaku secara lokal di satu salinan kerja ini.Anda juga dapat mengatur file global dengan pola untuk diabaikan
git config --global core.excludesfile
. Ini akan berlaku secara lokal untuk semua copy pekerjaan git pada akun pengguna yang sama.Jalankan
git help gitignore
dan baca teks untuk detailnya.sumber
Perintah abaikan git yang sangat berguna hadir dengan tambahan tj / git- mengagumkan .
Berikut adalah beberapa contoh penggunaan:
Daftar semua pola yang saat ini diabaikan
Tambahkan pola
Tambahkan salah satu templat dari gitignore.io
git-extras menyediakan lebih banyak perintah yang berguna. Pasti layak dicoba.
sumber
Di Linux / Unix, Anda dapat menambahkan file ke file .gitignore dengan
echo
perintah. Misalnya jika Anda ingin mengabaikan semua.svn
folder, jalankan ini dari root proyek:sumber
/
'dan' sebelumnya (untuk membuat baris baru), sepertiecho /nbproject/project.properties\ >> .gitignore
danecho /nbproject/project.xml\ >> .gitignore
.Anda memiliki dua cara untuk mengabaikan file:
.gitignore
dalam folder apa pun akan mengabaikan file seperti yang ditentukan dalam file untuk folder itu. Menggunakan wildcard dimungkinkan..git/info/exclude
memegang pola abaikan global, mirip denganglobal-ignores
file konfigurasi dalam subversi.sumber
.gitignore
file yang tidak mengandung '/' dicocokkan secara rekursif (yaitu juga di semua subdirektori dari direktori.gitignore
file berada), bertentangan dengan kasussvn:ignore
properti direktori di Subversion.Saya harap ini belum terlambat.
Jika Anda menggunakan Windows, Anda dapat melakukan yang berikut untuk membuat file .gitignore
Untuk mengedit .gitignore, Anda dapat menjalankan
sumber
Buat file bernama .gitignore di root repositori Anda. Dalam file ini Anda meletakkan path relatif ke setiap file yang ingin Anda abaikan dalam satu baris. Anda dapat menggunakan
*
wildcard.sumber
Dengan menggunakan jawaban yang telah disediakan, Anda dapat menggulung
git ignore
perintah Anda sendiri menggunakan alias . Tambahkan ini ke file ~ / .gitconfig Anda:Atau jalankan perintah ini dari shell (* nix) pilihan Anda:
Anda juga dapat membuat
git exclude
perintah dengan menggantiignore
denganexclude
dan.gitignore
dengan.git/info/exclude
di atas.(Jika Anda belum memahami perbedaan antara kedua file ini setelah membaca jawaban di sini, lihat pertanyaan ini .)
sumber
untuk nama yang tidak ada dalam copy atau repo yang berfungsi:
atau untuk file yang ada (baris perintah tipe sh):
sumber
Sangat berguna untuk mendefinisikan file .gitignore yang lengkap untuk proyek Anda. Hadiahnya adalah penggunaan aman kenyamanan
--all
atau-a
bendera untuk perintah sepertiadd
dancommit
.Juga, pertimbangkan untuk mendefinisikan file global ~ / .gitignore untuk pola yang biasanya diabaikan seperti
*~
, yang mencakup file sementara yang dibuat oleh Emacs.sumber
Anda harus menginstal git-ekstra untuk ini. Anda dapat menginstalnya di Ubuntu menggunakan apt-get,
Kemudian Anda bisa menggunakan perintah abaikan abaikan.
sumber
brew install git-extras
.Anda juga bisa menggunakan gitignore.io Joe Blau
Baik melalui antarmuka web https://www.gitignore.io/
Atau dengan menginstal alat CLI, ini sangat mudah, cukup ketik yang berikut di terminal Anda:
Linux:
echo "function gi() { curl -L -s https://www.gitignore.io/api/\$@ ;}" >> ~/.bashrc && source ~/.bashrc
OSX:
echo "function gi() { curl -L -s https://www.gitignore.io/api/\$@ ;}" >> ~/.bash_profile && source ~/.bash_profile
Dan kemudian Anda bisa mengetik
gi
followd dengan semua elemen platform / lingkungan yang Anda butuhkan untuk kriteria gitignore.Contoh!
Katakanlah Anda sedang mengerjakan proyek simpul yang menyertakan grunt dan Anda menggunakan webstorm di linux, maka Anda mungkin ingin mengetik:
gi linux,webstorm,node,grunt > .gitignore
(untuk membuat file baru)atau
gi linux,webstorm,node,grunt >> .gitignore
(untuk menambahkan / menambahkan aturan baru ke file yang sudah ada )bam, kamu baik-baik saja
sumber