Setiap pengembang di tim saya memiliki konfigurasi lokal mereka sendiri. Informasi konfigurasi itu disimpan dalam file yang disebut devtargets.rb
yang digunakan dalam tugas rake build kami. Saya tidak ingin para pengembang saling menghancurkan file devtargets masing-masing.
Pikiran pertama saya adalah memasukkan file itu ke dalam .gitignore
daftar sehingga tidak berkomitmen untuk git.
Lalu saya mulai bertanya-tanya: apakah mungkin untuk melakukan file, tetapi mengabaikan perubahan pada file? Jadi, saya akan melakukan versi standar file dan kemudian ketika seorang pengembang mengubahnya di mesin lokal mereka, git akan mengabaikan perubahan dan itu tidak akan muncul dalam daftar file yang diubah ketika Anda melakukan status git atau git melakukan .
Apakah itu mungkin? Pasti akan menjadi fitur yang bagus ...
Jawaban:
Tentu, saya melakukan ini dari waktu ke waktu menggunakan
Untuk membatalkan dan mulai melacak lagi (jika Anda lupa file apa yang tidak dilacak, lihat pertanyaan ini ):
Dokumentasi yang relevan :
Gagal dengan anggun dalam hal ini berarti, jika ada perubahan di bagian hulu ke file tersebut (perubahan yang sah, dll.) Saat Anda melakukan penarikan, akan muncul tulisan:
dan akan menolak untuk bergabung.
Pada titik itu, Anda dapat mengatasinya dengan mengembalikan perubahan lokal Anda, berikut ini caranya:
kemudian tarik lagi dan modifikasi ulang file lokal Anda, atau dapat diatur
–no-assume-unchanged
dan Anda dapat melakukan simpanan dan penggabungan normal, dll. pada saat itu.sumber
git update-index --assume-unchanged
. public-inbox.org/git/…Cara yang disukai untuk melakukan ini adalah menggunakan
git update-index --skip-worktree <file>
, seperti yang dijelaskan dalam jawaban ini :Untuk membatalkan ini, gunakan
git update-index --no-skip-worktree <file>
Sejak git versi 2.25.1, ini bukan lagi cara yang disarankan, dengan mengutip:
sumber
git update-index --skip-worktree
untuk tujuan ini.Praktik umum tampaknya adalah membuat
devtargets.default.rb
dan mengkomitnya, dan kemudian menginstruksikan setiap pengguna untuk menyalin file itudevtargets.rb
(yang ada di daftar .gitignore). Sebagai contoh, CakePHP melakukan hal yang sama untuk file konfigurasi database-nya yang secara alami berubah dari mesin ke mesin.sumber
--assume-unchanged
opsi untuk semua orang yang mengkloning repositori.devtargets.default.rb
jikadevtargets.rb
tidak ada.Untuk pengguna IntelliJ IDEA: Jika Anda ingin mengabaikan perubahan untuk file (atau file) Anda dapat memindahkannya ke yang berbeda
Change Set
.Local Changes
(Cmd + 9
)F6
untuk memindahkan mereka ke yang lainChange Set
sumber