Saya ingin git berhenti melacak log pengembangan lokal saya (log / development.log) di repositori kami. Apakah ini mungkin dan bagaimana saya bisa melakukannya?
from klemens: Anda perlu menambahkan file ke .gitignorefile Anda di suatu tempat di atas file yang tidak diinginkan dalam repo. yaitu
$ cd $ cat >> .gitignore development.log Cd
dari m. narebski: Anda kemudian perlu menghapus file dari repo dengan menjalankan " git rm --cached <file>dan kemudian melakukan penghapusan ini"
Jika Anda juga berharap untuk membuat repo tampak seolah-olah tidak pernah melacak file itu, itu jauh lebih rumit dan sangat tidak dianjurkan karena tidak hanya membuat komitmen baru untuk setiap komitmen dalam sejarah Anda, sehingga menghancurkan interoperabilitas dengan cara yang buruk. antara orang lain yang telah mengkloning repo Anda, tetapi itu juga membuat semua komitmen tersebut tidak diuji (dengan asumsi Anda menguji komitmen Anda sebelum membuatnya).
Dengan peringatan itu, alat yang Anda cari jika itu tujuan Anda filter-branch. Contoh pertama melakukan persis apa yang saya gambarkan.
menggunakan git rm --cached tampaknya tidak hanya menghapusnya cabang saya, tetapi ketika saya menarik ke sistem lain itu menghapus file secara fisik pada sistem itu. Adakah yang tahu apa yang terjadi di sana?
biagidp
2
Menanggapi hal di atas: Saya percaya masalah ini adalah bahwa saya tidak memiliki .gitignore di tempat pada sistem alternatif sebelum menarik perubahan, jadi hapus menghapus salinan lokal. Setidaknya itulah teorinya
biagidp
53
Untuk berhenti melacak file, cukup gunakan git rm --cached <filename>.
Tetapi seperti yang ditunjukkan oleh yang lain di sini, menambahkan file ke .gitignore mungkin mencegah Anda menambahkannya secara tidak sengaja nanti.
Ini hanya setengah dari jawabannya. .gitignoreentri tidak berlaku untuk file yang sudah dilacak.
CB Bailey
10
Bagian kedua adalah git rm --cached <file>dan kemudian melakukan penghapusan ini.
Jakub Narębski
1
Mengapa tidak ada perintah sederhana untuk git untuk mengevaluasi kembali semua file yang saat ini dilacak sesuai dengan file .gitignore saat ini? ... Atau apakah itu terlalu masuk akal? : p
Jawaban:
Sekedar memberi jawaban lengkap sekaligus:
from klemens: Anda perlu menambahkan file ke
.gitignore
file Anda di suatu tempat di atas file yang tidak diinginkan dalam repo. yaitu$ cd $ cat >> .gitignore development.log Cd
dari m. narebski: Anda kemudian perlu menghapus file dari repo dengan menjalankan "
git rm --cached <file>
dan kemudian melakukan penghapusan ini"Jika Anda juga berharap untuk membuat repo tampak seolah-olah tidak pernah melacak file itu, itu jauh lebih rumit dan sangat tidak dianjurkan karena tidak hanya membuat komitmen baru untuk setiap komitmen dalam sejarah Anda, sehingga menghancurkan interoperabilitas dengan cara yang buruk. antara orang lain yang telah mengkloning repo Anda, tetapi itu juga membuat semua komitmen tersebut tidak diuji (dengan asumsi Anda menguji komitmen Anda sebelum membuatnya).
Dengan peringatan itu, alat yang Anda cari jika itu tujuan Anda
filter-branch
. Contoh pertama melakukan persis apa yang saya gambarkan.sumber
Untuk berhenti melacak file, cukup gunakan
git rm --cached <filename>
.Tetapi seperti yang ditunjukkan oleh yang lain di sini, menambahkan file ke .gitignore mungkin mencegah Anda menambahkannya secara tidak sengaja nanti.
sumber
tambahkan file gitignore.
lihat http://git-scm.com/docs/gitignore
sumber
.gitignore
entri tidak berlaku untuk file yang sudah dilacak.git rm --cached <file>
dan kemudian melakukan penghapusan ini.