Cara menggunakan perintah gitignore di git

119

Saya bekerja pertama kali pada git. Saya telah mendorong cabang saya di github dan itu mendorong semua perpustakaan dan dokumen ke github. Sekarang apa yang bisa saya lakukan dan bagaimana saya bisa menggunakan perintah gitignore untuk menghindari kesalahan yang sama lagi.

pengguna1559230
sumber
1
.gitignoreadalah file di direktori root git Anda. Tambahkan pola nama untuk file yang ingin Anda abaikan, dan file akan diabaikan secara otomatis.
LonelyWebCrawler
Saya menggunakan ubuntu. Bisakah Anda mengatakan path dari direktori root git
user1559230
2
Ini adalah direktori tempat Anda menggunakan git init. The .gitdirektori berada di sana.
LonelyWebCrawler
2
Bagi mereka yang tidak tahu cara menggunakan gitignore - buka gitignore.io Anda dapat mengetikkan semua alat yang Anda gunakan (symfony, CakePHP, ZendFramework, wordpress, grunt, sublime text, netbeans, dan sebagainya, Anda dapat latihannya. ...) dan itu akan menghasilkan file abaikan git untuk Anda. Jika Anda tidak tahu bagaimana menggunakan gitignore, saya pikir cara terbaik untuk mempelajarinya adalah dengan melihat beberapa contoh use case yang bagus (seperti yang dihasilkan oleh gitignore.io. Jika Anda ingin menggunakannya dari baris cmd (cara culun ) lihat Tutorial ini: vimeo.com/70609819
DevWL

Jawaban:

162

Jadi berdasarkan apa yang Anda katakan, file-file ini adalah perpustakaan / dokumentasi yang tidak ingin Anda hapus tetapi juga tidak ingin didorong github. Membiarkan mengatakan Anda memiliki proyek Anda dalam folder your_projectdan direktori doc: your_project/doc.

  1. Hapus dari direktori proyek (tanpa benar-benar menghapusnya): git rm --cached doc/*
  2. Jika Anda belum memiliki .gitignore, Anda dapat membuat satu di dalam kanan folder proyek Anda: project/.gitignore.
  3. Masukkan doc/*.gitignore
  4. Tahap file untuk dikomit: git add project/.gitignore
  5. Komit: git commit -m "message".
  6. Dorong kembalian Anda ke github.
u19964
sumber
bisakah Anda memberi tahu saya cara menulis file .gitignore. yaitu, cara menulis jalur folder dan file yang ingin saya abaikan di dalam file .gitignore. Terima kasih
pengguna1559230
Terima kasih atas jawaban anda. Sebelum melakukan, saya harus menjalankan git add -A
user1559230
4
Hai, gitignore hanyalah file teks biasa. Ini sebenarnya .gitignore (DOTgitignore). Letakkan saja nama file / jenis file yang ingin Anda abaikan, satu per baris. Contoh: sujee.net/tech/articles/gitignore
u19964
42

Jika Anda tidak memiliki file .gitignore, gunakan pertama:

touch .gitignore

lalu perintah ini untuk menambahkan baris di file gitignore Anda:

echo 'application/cache' >> .gitignore

Hati-hati dengan baris baru

Serdar Değirmenci
sumber
Tidak perlu touchfile dulu. >>sama dengan >jika file tersebut belum ada. echomenambahkan baris baru di akhir keluaran. Anda bisa menghentikannya dengan -n. Jika Anda membutuhkan berbagai abaikan, baik melakukan berbagai echos, atau penggunaan -e, sebagai berikut: echo -e "**/cache/\n**.pyc" >> .gitignore. Tanda bintang ganda juga cocok dengan semua file yang menggali ke dalam folder secara rekursif. Gunakan /di akhir folder, untuk berjaga-jaga.
mazunki
1
@Andrew tl; dr: Tambahkan setiap file yang diabaikan dengan echo "file_to_be_ignored" >> .gitignore, tidak perlu melakukan apa pun. Akhiri nama folder dengan /sebagai echo "**/modules/" >> .gitignore.
mazunki
Mengapa komentar saya dihapus
Andrew
12

git ignore adalah konvensi di git. Menyetel file dengan nama .gitignore akan mengabaikan file di direktori itu dan direktori yang lebih dalam yang cocok dengan pola yang ada di file tersebut. Penggunaan paling umum adalah hanya memiliki satu file seperti ini di tingkat atas. Tetapi Anda dapat menambahkan orang lain lebih dalam dalam struktur direktori Anda untuk mengabaikan lebih banyak pola atau berhenti mengabaikannya untuk direktori itu dan selanjutnya yang lebih dalam.

Demikian pula, Anda dapat "tidak mengabaikan" file tertentu dalam struktur yang lebih dalam atau subset tertentu (misalnya, Anda mengabaikan * .log tetapi ingin tetap melacak important.log) dengan menetapkan pola yang dimulai dengan !. misalnya:

*.log !important.log

akan mengabaikan semua file log tetapi akan melacak file bernama important.log

Jika Anda melacak file yang ingin Anda abaikan, hapus, tambahkan pola ke file .gitignore Anda dan tambahkan semua perubahan

# 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 

mulai sekarang repositori Anda tidak akan melacaknya.

Jika Anda ingin membersihkan riwayat Anda, Anda bisa

# if you want to correct the last 10 commits
git rebase -i --preserve-merges HEAD~10 

lalu tandai setiap komit dengan eatau edit. Simpan rencananya. Sekarang git akan memutar ulang riwayat Anda dengan berhenti di setiap komit yang Anda tandai dengan e. Di sini Anda menghapus file yang tidak Anda inginkan, git add -Adan kemudian git rebase --continuesampai Anda selesai. Sejarahmu akan bersih. Pastikan Anda memberi tahu rekan kerja karena Anda harus memaksakan dorongan dan mereka harus melakukan rebase pada apa yang belum mereka dorong.

Adam Dymitruk
sumber
8

Ada sebuah file di direktori root git Anda yang bernama .gitignore. Ini file, bukan perintah. Anda hanya perlu memasukkan nama file yang ingin Anda abaikan, dan file tersebut akan diabaikan secara otomatis. Misalnya, jika Anda ingin mengabaikan semua file emacs autosave, yang diakhiri dengan ~, Anda dapat menambahkan baris ini:

*~

Jika Anda ingin menghapus file yang tidak diinginkan dari cabang Anda, Anda dapat menggunakan git add -A, yang " menghapus file yang tidak lagi berada di pohon kerja ".

Catatan: Yang saya sebut "direktori root git" hanyalah direktori tempat Anda menggunakan git inituntuk pertama kali. Itu juga tempat Anda dapat menemukan .gitdirektori.

LonelyWebCrawler
sumber
apa yang akan terjadi pada file yang sudah didorong yang tidak saya inginkan
user1559230
4

Jika Anda tidak memiliki file .gitignore. Anda dapat membuat yang baru dengan

touch .gitignore

Dan Anda dapat mengecualikan folder dengan memasukkan perintah di bawah ini ke file .gitignore

/folderName

dorong file ini ke dalam repositori git Anda sehingga ketika orang baru mengkloning proyek Anda, dia tidak perlu menambahkan yang sama lagi

karthik vishnu kumar
sumber
2

Ada beberapa cara untuk menggunakan gitignore git

  • menentukan dengan nama file tertentu. misalnya, untuk mengabaikan file
    bernama readme.txt, cukup tulis readme.txt di file .gitignore.
  • Anda juga dapat menulis nama ekstensi file. Misalnya, untuk
    mengabaikan semua file .txt, tulis * .txt.
  • Anda juga bisa mengabaikan seluruh folder. misalnya Anda ingin mengabaikan
    tes bernama folder. Kemudian tulis saja tes / di file.

cukup buat file .gitignore dan tulis apa pun yang ingin Anda abaikan, contoh file gitignore adalah:

# NPM packages folder.
node_modules

# Build files
dist/

# lock files
yarn.lock
package-lock.json

# Logs
logs
*.log
npm-debug.log*

# node-waf configuration
.lock-wscript

# Optional npm cache directory
.npm

# Optional REPL history
.node_repl_history

# Jest Coverage
coverage

.history/

Anda dapat menemukan lebih banyak tentang dokumentasi git gitignore

Afaq Ahmed Khan
sumber
1

di mac saya, saya menemukan file ini .gitignore_global .. ada di direktori home saya tersembunyi jadi lakukan a ls -altruntuk melihatnya.

Saya menambahkan file gerhana yang ingin saya abaikan. isinya terlihat seperti ini:

 *~
.DS_Store
.project
.settings
.classpath
.metadata
j2emanue
sumber
ketika saya meletakkan file .gitignore di folder proyek saya, itu mengacaukan proyek eclipse saya secara lokal. tahukah anda mengapa hal itu bisa terjadi dan bagaimana cara mencegahnya ?? untuk saat ini saya hanya menjauh dari .gitignore.
JesseBoyd
Saya tidak menggunakan gerhana lagi. Inteilji sekarang
j2emanue