Apakah Anda ingin folder cache dikecualikan dari repositori sepenuhnya, atau hanya isinya?
Gareth
1
Saya menduga bahwa OP memiliki banyak direktori cache, yang isinya harus diabaikan, tetapi ingin memastikan bahwa direktori tersebut dibuat untuk siapa saja yang mengkloning repositori.
Mark Longair
@ Gareth: karena folder kosong tidak dilacak dengan git, jika kontennya diabaikan, folder itu juga akan, bukan?
eckes
3
Saya hanya menyebutkan bahwa karena beberapa orang menggunakan file tersembunyi (umumnya .gitkeep) untuk menunjukkan direktori yang harus disimpan
Gareth
2
adalah /pada akhirnya apa yang membuatnya tahu itu direktori yang harus diabaikan?
Charlie Parker
Jawaban:
1595
Buat file dengan nama .gitignoredi direktori proyek Anda. Abaikan direktori dengan memasukkan nama direktori ke dalam file (dengan garis miring ditambahkan):
Di jendela cmd prompt Anda dapat menggunakan 'edit .gitignore' atau 'notepad .gitignore' untuk membuat file yang benar.
Joey Green
44
Atau Anda juga dapat menggunakan 'touch .gitignore' dari dalam command prompt windows git bash dan itu akan membuat file dengan nama yang benar yang kemudian dapat diedit oleh notepad atau sejenisnya ...
SGB
39
Atau cukup buat file bernama .gitignore. dengan explorer dan edit dengan notepad (trailing dot akan dihapus). Dengan begitu Anda tidak perlu menggunakan command prompt.
P. Galbraith
6
Atau Anda dapat vim .gitignore dari terminal. :)
MollyCat
34
Atau, yang secara mengejutkan belum disebutkan meskipun itu adalah cara tercepat, cukup ketik "echo folder_to_ignore >> .gitignore" di konsol.
Godsmith
205
Secara default, Windows Explorer akan ditampilkan .gitignorepadahal sebenarnya nama filenya .gitignore.txt.
Git tidak akan digunakan .gitignore.txt
Dan Anda tidak dapat mengubah nama file menjadi .gitignore, karena Windows Explorer berpikir itu file tipe gitignore tanpa nama.
Solusi baris tanpa perintah:
Anda dapat mengganti nama file menjadi ".gitignore." , dan itu akan membuat ".gitignore"
Itu bekerja? Saya selalu mengatakan kepada orang-orang untuk membuka notepad dan dalam dialog Save As ketik nama file yang dikelilingi oleh doublequotes, jadi misalnya ".gitignore"dan menyimpannya tanpa secara otomatis menambahkan ekstensi.
Arrowmaster
9
Rapi. Termasuk periode trailing tidak bekerja. Explorer menghapus periode terakhir, menghasilkan file bernama ".gitignore". Saya pikir metode kutipan lebih bersih dan cenderung membuat kejutan.
Triynko
4
Atau, dalam dialog Simpan Sebagai, ubah jenis file menjadi "Semua File ( . )" - maka Windows tidak akan menambahkan ekstensi apa pun.
OsakaWebbie
5
atau di git bash cukup ketik "touch .gitignore" di folder Anda
Rayjax
3
".gitignore."- Ini trik yang bagus! Saya selalu memiliki masalah dengan .htaccessjuga ...
Obmerk Kronen
105
Tampaknya untuk mengabaikan file dan direktori ada dua cara utama:
.gitignore
Menempatkan .gitignorefile ke dalam root repositori Anda di samping .gitfolder (di Windows, pastikan Anda melihat ekstensi file yang benar dan kemudian buat .gitignore.(dengan titik di bagian akhir untuk membuat ekstensi file kosong))
Membuat konfigurasi global ~/.gitignore_globaldan berjalan git config --global core.excludesfile ~/.gitignore_globaluntuk menambahkan ini ke konfigurasi Git Anda
Catatan: file yang dilacak sebelum dapat dilacak dengan menjalankan git rm --cached filename
Kecualikan repositori - Untuk file lokal yang tidak perlu dibagi, Anda cukup menambahkan pola file atau direktori ke file .git/info/exclude. Aturan tesis tidak dilakukan, sehingga tidak terlihat oleh pengguna lain . Informasi lebih lanjut ada di sini .
Untuk membuat pengecualian dalam daftar file yang diabaikan, lihat pertanyaan ini .
pekerjaan bagus menunjukkan git rm --cached <filename>. Benar-benar penting untuk repo yang ada SEBELUM Anda membuat.gitignore
MaurerPower
2
git rm --cached <filename> memperbaiki masalah yang saya alami dengan .gitignore :)
JeremyFelix
1
Yeah git rm - nama file yang di-cache sangat penting. Itu membuat saya gila karena git masih menampilkan file yang saya jelas-jelas dinyatakan diabaikan (dibuat gitignore setelah komit awal). Terima kasih banyak!
Potaito
1
Memecahkan masalah saya. Git melacak folder vendor di repositori laravel saya walaupun saya telah menambahkan folder vendor di gitignore. Terima kasih banyak.
Jayant
44
Saya punya beberapa masalah membuat file di Windows Explorer dengan .di awal.
Solusinya adalah masuk ke commandshell dan membuat file baru menggunakan "edit".
atau hanya menambahkan tambahan .di akhir sehingga penjelajah berhenti berpikir .gitignoreekstensi. Kemudian pada entri bahwa trailing dot tanpa ekstensi baru saja dimakan dan Anda dibiarkan dengan .gitignore TL; DR: coba .gitignore..gitignore
beri
43
Untuk menginstruksikan Git untuk mengabaikan file atau folder tertentu, Anda harus membuat .gitignorefile.
Tetapi di Windows Explorer Anda harus memberikan nama untuk file tersebut. Anda tidak dapat membuat file hanya dengan ekstensi. Caranya adalah membuat file teks kosong dan pergi ke command prompt dan ubah nama file menjadi .gitignore:
ren "New Text Document.txt" .gitignore
Sekarang buka file dengan editor teks favorit Anda dan tambahkan nama file / folder yang ingin Anda abaikan. Anda juga dapat menggunakan wildcard seperti ini: *.txt.
Atau type nul > .gitignoreuntuk membuat file kosong
Castro Roy
Atau panggil saja file tersebut .gitignore.ketika ekstensi file tidak disembunyikan di penjelajah Windows Anda
Vairis
22
Jika Anda ingin mempertahankan folder dan bukan file di dalamnya, cukup masukkan file ".gitignore" di folder dengan "*" sebagai konten. File ini akan membuat Git mengabaikan semua konten dari repositori. Tetapi .gitignoreakan dimasukkan dalam repositori Anda.
$ git add path/to/folder/.gitignore
Jika Anda menambahkan folder kosong, Anda menerima pesan ini (.gitignore adalah file tersembunyi)
The following paths are ignored by one of your .gitignore files:
path/to/folder/.gitignore
Use -f if you really want to add them.
fatal: no files added
Di Windows ada tangkapan tambahan dengan garis miring. Tidak termasuk direktori tunggal di .gitignore with
dir_to_exclude /
mungkin akan berfungsi, tetapi mengecualikan semua direktori dengan
/
menyebabkan masalah ketika Anda memiliki nama file dengan spasi (seperti my file.txt) di direktori Anda: Git Bash lolos dari spasi ini dengan backslash (seperti my\ file.txt) dan Git untuk Windows tidak membedakan antara /dan \.
Untuk mengecualikan semua direktori, gunakan lebih baik:
** /
Dua tanda bintang berturut-turut menandakan konten direktori.
Juga di \.git\infodirektori proyek Anda ada file pengecualian yang secara efektif sama dengan .gitignore(saya pikir). Anda dapat menambahkan file dan direktori untuk diabaikan dalam hal itu.
dan menambahkan direktori yang Anda inginkan di akhir file, seperti ini:
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
assets/
compiled/
Saya menambahkan folder "aset" dan "dikompilasi" ke daftar file dan direktori untuk diabaikan.
Ini adalah jawaban terbaik, juga membawa manfaat tambahan dalam penyebaran dan pemeliharaan proyek.
Nitin ...
Siapa itu "simples" ?
Peter Mortensen
9
Di Unix:
touch .gitignore
Di Windows:
echo > .gitignore
Perintah-perintah ini dieksekusi di terminal akan membuat a .gitignore file di lokasi saat ini.
Kemudian tambahkan saja informasi ke .gitignorefile ini (menggunakan Notepad ++ misalnya) file atau folder mana yang harus diabaikan. Simpan perubahan Anda. Itu dia :)
Saya punya beberapa masalah dengan Git untuk mengambil .gitignorefile di Windows. The $GIT_DIR/info/excludeberkas selalu tampaknya bekerja sekalipun.
Kelemahan dari pendekatan ini, bagaimanapun, adalah bahwa file-file dalam $GIT_DIRdirektori tidak termasuk dalam check-in, dan karenanya tidak dibagikan.
... dengan yang .gitignoreAnda jelaskan. Ini akan memberi Anda git statusoutput seperti:
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# a-cache/
# b-cache/
... jika itu index.htmlfile belum ditambahkan ke repositori. (Git melihat bahwa ada file yang belum disimpan dalam direktori cache, tetapi hanya melaporkan direktori.) Untuk memperbaiki ini, pastikan bahwa Anda telah menambahkan dan melakukan index.htmlfile:
git add *cache/index.html
git commit -m "Adding index.html files to the cache directories"
... dan git statuskemudian Anda akan terlihat seperti:
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
nothing added to commit but untracked files present (use "git add" to track)
(Tentunya kamu juga ingin berkomitmen .gitignore. Aku hanya malas dengan test case ini.)
Anda mungkin tidak ingin berkomitmen Gitignore terutama karena Anda mungkin ingin melacak perubahan untuk itu, dan begitu juga tim Anda (jika Anda bekerja dengan satu). Lihat stackoverflow.com/a/767213/123033
Dave Everitt
2
@ Dave Everitt: Itulah mengapa saya berkata, "Jelas Anda memang ingin melakukan .gitignore juga".
Mark Longair
6
Di Windows dan Mac, jika Anda ingin mengabaikan folder bernama Flower_Data_Folder di direktori saat ini, Anda dapat melakukannya:
Saya memiliki masalah serupa. Saya bekerja pada rantai alat Windows dengan repositori bersama dengan orang-orang Linux, dan mereka dengan senang hati membuat file dengan nama yang sama (kecuali untuk kasus) di folder yang diberikan.
Efeknya adalah saya dapat mengkloning repositori dan segera memiliki lusinan file yang 'dimodifikasi' yang, jika saya check-in, akan membuat kekacauan.
Saya memiliki Windows diatur ke case sensitif dan Git untuk tidak mengabaikan kasus, tetapi masih gagal (dalam panggilan Win32 API rupanya).
Jika saya gitignore file maka saya harus ingat untuk tidak melacak file .gitignore.
Tautan tersebut tampaknya rusak (pertama-tama dialihkan ke versi 'https'): "Koneksi Aman Gagal. Terjadi kesalahan selama koneksi ke archive.robwilkerson.org. PR_END_OF_FILE_ERROR"
Peter Mortensen
0
Cukup buat .gitignorefile di folder proyek Anda Lalu tambahkan nama folder di dalamnya untuk contoh:
.gitkeep
) untuk menunjukkan direktori yang harus disimpan/
pada akhirnya apa yang membuatnya tahu itu direktori yang harus diabaikan?Jawaban:
Buat file dengan nama
.gitignore
di direktori proyek Anda. Abaikan direktori dengan memasukkan nama direktori ke dalam file (dengan garis miring ditambahkan):Informasi lebih lanjut ada di sini .
sumber
Secara default, Windows Explorer akan ditampilkan
.gitignore
padahal sebenarnya nama filenya.gitignore.txt
.Git tidak akan digunakan
.gitignore.txt
Dan Anda tidak dapat mengubah nama file menjadi
.gitignore
, karena Windows Explorer berpikir itu file tipe gitignore tanpa nama.Solusi baris tanpa perintah:
sumber
".gitignore"
dan menyimpannya tanpa secara otomatis menambahkan ekstensi.".gitignore."
- Ini trik yang bagus! Saya selalu memiliki masalah dengan.htaccess
juga ...Tampaknya untuk mengabaikan file dan direktori ada dua cara utama:
.gitignore
.gitignore
file ke dalam root repositori Anda di samping.git
folder (di Windows, pastikan Anda melihat ekstensi file yang benar dan kemudian buat.gitignore.
(dengan titik di bagian akhir untuk membuat ekstensi file kosong))~/.gitignore_global
dan berjalangit config --global core.excludesfile ~/.gitignore_global
untuk menambahkan ini ke konfigurasi Git AndaCatatan: file yang dilacak sebelum dapat dilacak dengan menjalankan
git rm --cached filename
Kecualikan repositori - Untuk file lokal yang tidak perlu dibagi, Anda cukup menambahkan pola file atau direktori ke file
.git/info/exclude
. Aturan tesis tidak dilakukan, sehingga tidak terlihat oleh pengguna lain . Informasi lebih lanjut ada di sini .Untuk membuat pengecualian dalam daftar file yang diabaikan, lihat pertanyaan ini .
sumber
git rm --cached <filename>
. Benar-benar penting untuk repo yang ada SEBELUM Anda membuat.gitignore
Saya punya beberapa masalah membuat file di Windows Explorer dengan
.
di awal.Solusinya adalah masuk ke commandshell dan membuat file baru menggunakan "edit".
sumber
.
di akhir sehingga penjelajah berhenti berpikir.gitignore
ekstensi. Kemudian pada entri bahwa trailing dot tanpa ekstensi baru saja dimakan dan Anda dibiarkan dengan.gitignore
TL; DR: coba.gitignore.
.gitignore
Untuk menginstruksikan Git untuk mengabaikan file atau folder tertentu, Anda harus membuat
.gitignore
file.Tetapi di Windows Explorer Anda harus memberikan nama untuk file tersebut. Anda tidak dapat membuat file hanya dengan ekstensi. Caranya adalah membuat file teks kosong dan pergi ke command prompt dan ubah nama file menjadi
.gitignore
:Sekarang buka file dengan editor teks favorit Anda dan tambahkan nama file / folder yang ingin Anda abaikan. Anda juga dapat menggunakan wildcard seperti ini:
*.txt
.sumber
type nul > .gitignore
untuk membuat file kosong.gitignore.
ketika ekstensi file tidak disembunyikan di penjelajah Windows AndaJika Anda ingin mempertahankan folder dan bukan file di dalamnya, cukup masukkan file ".gitignore" di folder dengan "*" sebagai konten. File ini akan membuat Git mengabaikan semua konten dari repositori. Tetapi
.gitignore
akan dimasukkan dalam repositori Anda.Jika Anda menambahkan folder kosong, Anda menerima pesan ini (.gitignore adalah file tersembunyi)
Jadi, gunakan "-f" untuk memaksa menambahkan:
sumber
Di Windows ada tangkapan tambahan dengan garis miring. Tidak termasuk direktori tunggal di .gitignore with
mungkin akan berfungsi, tetapi mengecualikan semua direktori dengan
menyebabkan masalah ketika Anda memiliki nama file dengan spasi (seperti
my file.txt
) di direktori Anda: Git Bash lolos dari spasi ini dengan backslash (sepertimy\ file.txt
) dan Git untuk Windows tidak membedakan antara/
dan\
.Untuk mengecualikan semua direktori, gunakan lebih baik:
Dua tanda bintang berturut-turut menandakan konten direktori.
sumber
Juga di
\.git\info
direktori proyek Anda ada file pengecualian yang secara efektif sama dengan.gitignore
(saya pikir). Anda dapat menambahkan file dan direktori untuk diabaikan dalam hal itu.sumber
Kalau-kalau Anda perlu mengecualikan sub folder Anda dapat menggunakan
**
wildcard untuk mengecualikan setiap tingkat sub direktori.sumber
Untuk mengabaikan seluruh direktori di Git, cara termudah adalah memasukkan file .gitignore ke dalam direktori target yang hanya berisi "*".
Contoh ilustratif,
Contoh Sistem
Tujuan
Tingkat Atas .gitignore (/root/.gitignore)
Direktori Diabaikan .gitignore (/root/dirB.gitignore)
Dan sesederhana itu :)
sumber
Ketika semuanya gagal coba edit file
dan menambahkan direktori yang Anda inginkan di akhir file, seperti ini:
Saya menambahkan folder "aset" dan "dikompilasi" ke daftar file dan direktori untuk diabaikan.
sumber
Anda dapat membuat file ".gitignore" dengan konten:
Ini bekerja untuk saya.
sumber
Di Unix:
Di Windows:
Perintah-perintah ini dieksekusi di terminal akan membuat a
.gitignore
file di lokasi saat ini.Kemudian tambahkan saja informasi ke
.gitignore
file ini (menggunakan Notepad ++ misalnya) file atau folder mana yang harus diabaikan. Simpan perubahan Anda. Itu dia :)Informasi lebih lanjut: .gitignore
sumber
Saya punya beberapa masalah dengan Git untuk mengambil
.gitignore
file di Windows. The$GIT_DIR/info/exclude
berkas selalu tampaknya bekerja sekalipun.Kelemahan dari pendekatan ini, bagaimanapun, adalah bahwa file-file dalam
$GIT_DIR
direktori tidak termasuk dalam check-in, dan karenanya tidak dibagikan.sumber
Saya berasumsi masalahnya adalah bahwa pohon kerja Anda seperti:
... dengan yang
.gitignore
Anda jelaskan. Ini akan memberi Andagit status
output seperti:... jika itu
index.html
file belum ditambahkan ke repositori. (Git melihat bahwa ada file yang belum disimpan dalam direktori cache, tetapi hanya melaporkan direktori.) Untuk memperbaiki ini, pastikan bahwa Anda telah menambahkan dan melakukanindex.html
file:... dan
git status
kemudian Anda akan terlihat seperti:(Tentunya kamu juga ingin berkomitmen
.gitignore
. Aku hanya malas dengan test case ini.)sumber
Di Windows dan Mac, jika Anda ingin mengabaikan folder bernama Flower_Data_Folder di direktori saat ini, Anda dapat melakukannya:
Jika sebuah file bernama
data.txt
:Jika itu jalan seperti "Data / passwords.txt"
sumber
Saya memiliki masalah serupa. Saya bekerja pada rantai alat Windows dengan repositori bersama dengan orang-orang Linux, dan mereka dengan senang hati membuat file dengan nama yang sama (kecuali untuk kasus) di folder yang diberikan.
Efeknya adalah saya dapat mengkloning repositori dan segera memiliki lusinan file yang 'dimodifikasi' yang, jika saya check-in, akan membuat kekacauan.
Saya memiliki Windows diatur ke case sensitif dan Git untuk tidak mengabaikan kasus, tetapi masih gagal (dalam panggilan Win32 API rupanya).
Jika saya gitignore file maka saya harus ingat untuk tidak melacak file .gitignore.
Tetapi saya menemukan jawaban yang bagus di sini:
http://archive.robwilkerson.org/2010/03/02/git-tip-ignore-changes-to-tracked-files/index.html
sumber
Cukup buat
.gitignore
file di folder proyek Anda Lalu tambahkan nama folder di dalamnya untuk contoh:sumber