Bagaimana cara mengabaikan .pycfile di git?
Jika saya memasukkannya ke .gitignoredalamnya tidak akan berhasil. Saya ingin mereka tidak terlacak dan tidak diperiksa komitnya.
Bagaimana cara mengabaikan .pycfile di git?
Jika saya memasukkannya ke .gitignoredalamnya tidak akan berhasil. Saya ingin mereka tidak terlacak dan tidak diperiksa komitnya.
Jawaban:
Masukkan .gitignore. Tapi dari gitignore(5)halaman manual:
· If the pattern does not contain a slash /, git treats it as a shell glob pattern and checks for a match against the pathname relative to the location of the .gitignore file (relative to the toplevel of the work tree if not from a .gitignore file). · Otherwise, git treats the pattern as a shell glob suitable for consumption by fnmatch(3) with the FNM_PATHNAME flag: wildcards in the pattern will not match a / in the pathname. For example, "Documentation/*.html" matches "Documentation/git.html" but not "Documentation/ppc/ppc.html" or "tools/perf/Documentation/perf.html".
Jadi, tentukan path lengkap ke *.pycentri yang sesuai , atau letakkan di .gitignorefile di direktori mana pun yang mengarah dari root repositori (inklusif).
Anda harus menambahkan baris dengan:
*.pyc
ke .gitignorefile di folder root pohon repositori git Anda tepat setelah inisialisasi repositori.
Seperti yang dikatakan ralphtheninja , jika Anda lupa melakukannya sebelumnya, jika Anda hanya menambahkan baris ke .gitignorefile, semua .pycfile yang dikomit sebelumnya masih akan dilacak, jadi Anda harus menghapusnya dari repositori.
Jika Anda menggunakan sistem Linux (atau "orang tua & anak" seperti MacOSX), Anda dapat melakukannya dengan cepat hanya dengan satu baris perintah yang perlu Anda jalankan dari root repositori:
find . -name "*.pyc" -exec git rm -f "{}" \;
Ini hanya berarti:
mulai dari direktori saya saat ini, temukan semua file yang namanya diakhiri dengan ekstensi
.pyc, dan berikan nama file ke perintahgit rm -f
Setelah *.pycfile dihapus dari git sebagai file yang dilacak, lakukan perubahan ini ke repositori, dan akhirnya Anda bisa menambahkan *.pycbaris ke .gitignorefile.
(diadaptasi dari http://yuji.wordpress.com/2010/10/29/git-remove-all-pyc/ )
Anda mungkin telah menambahkan mereka ke repositori sebelum meletakkan *.pycdi .gitignore.
Hapus terlebih dahulu dari repositori.
saya mencoba menggunakan kalimat dari posting sebelumnya dan tidak berfungsi secara rekursif, kemudian membaca beberapa bantuan dan mendapatkan baris ini:
find . -name "*.pyc" -exec git rm -f "{}" \;
pd perlu menambahkan * .pyc dalam file .gitignore untuk menjaga kebersihan git
echo "*.pyc" >> .gitignore
Nikmati.
Jika Anda ingin mengabaikan file '.pyc' secara global (yaitu jika Anda tidak ingin menambahkan baris ke file .gitignore di setiap direktori git), coba yang berikut ini:
$ cat ~/.gitconfig
[core]
excludesFile = ~/.gitignore
$ cat ~/.gitignore
**/*.pyc
[Referensi]
https://git-scm.com/docs/gitignore
Pola yang diinginkan oleh pengguna untuk diabaikan oleh Git dalam semua situasi (misalnya, file cadangan atau file sementara yang dibuat oleh editor pilihan pengguna) umumnya masuk ke file yang ditentukan oleh core.excludesFile di ~ / .gitconfig pengguna.
Sebuah "**" di depan diikuti dengan garis miring berarti cocok di semua direktori. Misalnya, "** / foo" cocok dengan file atau direktori "foo" di mana saja, sama seperti pola "foo". "** / foo / bar" cocok dengan file atau direktori "bar" di mana saja yang berada langsung di bawah direktori "foo".
Terima kasih @Enrico atas jawabannya.
Perhatikan jika Anda menggunakan virtualenv, Anda akan memiliki beberapa .pycfile lagi di dalam direktori Anda saat ini, yang akan ditangkap oleh perintah find-nya.
Sebagai contoh:
./app.pyc
./lib/python2.7/_weakrefset.pyc
./lib/python2.7/abc.pyc
./lib/python2.7/codecs.pyc
./lib/python2.7/copy_reg.pyc
./lib/python2.7/site-packages/alembic/__init__.pyc
./lib/python2.7/site-packages/alembic/autogenerate/__init__.pyc
./lib/python2.7/site-packages/alembic/autogenerate/api.pyc
Saya rasa tidak ada salahnya untuk menghapus semua file, tetapi jika Anda hanya ingin menghapus file .pyc file di direktori utama Anda, maka lakukan saja
find "*.pyc" -exec git rm -f "{}" \;
Ini hanya akan menghapus app.pycfile dari repositori git.