File .gitignore, di mana saya harus meletakkannya di proyek xcode saya?

102

Saya ingin git mengabaikan UserInterfaceState.xcuserstatefile saya di proyek XCode4 saya, tetapi di mana saya harus meletakkan .gitignorefile tersebut ?, apakah di dalam .gitfolder? atau keluar? Ada .gitdi folder yang sama dengan ProjectName.xcodeprojfile

Mauricio Alberto Barragn Huert
sumber
kemungkinan duplikat dari mana file .gitignore berada?
Pavan Gupta

Jawaban:

124

Anda dapat memiliki .gitignoredi setiap direktori proyek Anda.

Namun, praktik terbaiknya adalah memiliki satu .gitignorefile di direktori root project, dan menempatkan semua file yang ingin Anda abaikan di dalamnya, seperti ini:

ignoredFile.whatever
ignoredDirectory/*
directory/ignoredFileInsideDirectory
.svn

Setelah Anda membuat .gitignorefile, file yang diabaikan yang memiliki perubahan atau baru ke dalam repositori tidak akan ditampilkan sebagai menunggu untuk komit.

Anda juga dapat memiliki satu file abaikan git lokal global, yang akan mengelola semua repositori git Anda.

git config --global core.excludesfile ~/.gitignore_global

Alternatif ini sangat menarik untuk file yang diabaikan yang tidak terkait dengan proyek, seperti file terkait IDE dan sebagainya.

Daniel Ribeiro
sumber
1
.Gitignore ini harus ditambahkan di origin atau di salinan master / local-repo Anda?
Adil
1
Secara lokal (tentu saja Anda akan mendorongnya ke asal di beberapa titik).
Daniel Ribeiro
21

Ada beberapa pendekatan untuk mengabaikan file di git:

  1. Global git ignore: - Dalam pendekatan ini, aturan kustom Anda akan diterapkan ke setiap direktori git di komputer Anda. Biasanya file ini mungkin dibuat di bawah ~/.gitignore_globaljalur. Pendekatan ini baik jika Anda ingin mengecualikan beberapa jenis file yang dihasilkan oleh OS atau alat logging, cashing dan lain-lain.
  2. Per-repository git ignore: - Dalam pendekatan ini, aturan kustom Anda akan diterapkan ke direktori git tertentu di mesin Anda. Aturan lokal per repositori dapat ditambahkan ke .git/info/excludefile di repositori Anda. Aturan yang ditentukan di bawah file ini tidak akan dilakukan, yang berarti tidak akan dibagikan dengan orang lain. Umumnya pendekatan ini berguna untuk mencegah melakukan file yang dibuat secara lokal. Misalnya, untuk file yang dibuat oleh editor Anda.
  3. Per jalur git ignore: - Dalam hal ini, aturan khusus Anda akan diterapkan ke sub jalur repositori git tertentu. Anda dapat membuat .gitignoredi sub-jalur mana pun dari repositori spesifik Anda. Pendekatan ini biasanya digunakan untuk mengabaikan beberapa jenis file hanya di bawah folder tertentu dari repositori tertentu. Meskipun file ini dapat ditambahkan ke pengontrol versi oleh jalur lain dan repositori lain.

Jadi, saran saya kepada Anda adalah, jika Anda ingin mengabaikan file spesifik ( UserInterfaceState.xcuserstate) di semua repositori Anda, pendekatan terbaik adalah menggunakan pendekatan global git ignore. Namun, jika file Anda dibuat hanya dalam repositori tertentu, Anda dapat menggunakan pendekatan git ignore per repositori.

Untuk informasi lebih lanjut Anda dapat membaca posting blog yang bagus ini . Dan di sana, untuk setiap bahasa, aturan abaikan git tertentu dapat ditemukan di sini . Dan Anda dapat membuat aturan abaikan git umum secara otomatis untuk bahasa, alat, atau os tertentu menggunakan situs web ini .

Khamidulla
sumber
20

Anda harus meletakkan file .gitignore ke dalam direktori root proyek.

heinrich5991
sumber
12

di mana saya harus meletakkan .gitignorefile ?, apakah itu di dalam folder .git?

Tidak ada .gitignoredi dalam .gitfolder.
Namun .git/info/excludefile is a , yang memungkinkan Anda untuk mengecualikan file secara lokal, umumnya ketika Anda ingin mengecualikan file hanya untuk repo khusus ini (dengan alias seperti ini ):

git config alias.exclude "!sh -c 'echo \"$1\" >> .git/info/exclude' -"
git exclude UserInterfaceState.xcuserstate

Jika Anda perlu mengecualikan file ini untuk semua proyek serupa, seperti yang disebutkan Elnur Abdurrakhimov dalam jawabannya , kecualikan secara global.

echo UserInterfaceState.xcuserstate >> ~/.gitignore

Tetapi, seperti yang disebutkan dalam " Apakah kita perlu memeriksa * .xcuserstate? ", Jika itu adalah jenis file yang harus diabaikan oleh pengguna repo itu, saya sebenarnya akan versi .gitignore di bagian atas repo, dengan konten yang mirip dengan:

*.xcuserstate 

Dengan begitu, setiap pengguna repo itu bahkan tidak akan menyadari bahwa file ini ada dan dibuat (apa pun namanya): itu tidak akan muncul git statusselamanya.

Atau Anda dapat mengabaikanxcuserdata/ sepenuhnya (baik secara global .gitignore, atau dalam versi, seperti file GitHub generikObjective-C.gitignore .

VonC
sumber
Anda adalah legenda GIT! selalu jawaban Anda yang paling berguna.
Jad Chahine
@JadChahine Terima kasih. Senang membantu (setidaknya, menulis jawaban itu membantu saya belajar git)
VonC
@tymac Tidak cukup;) Saya baru saja mengunjungi secara teratur ( meta.stackexchange.com/questions/122976/… )
VonC
9

Anda tidak boleh memasukkan file khusus alat ke dalam file proyek .gitignore- kecuali alat itu diperlukan untuk digunakan oleh setiap pengembang proyek.

Sebagai gantinya, buat .gitignorefile global pribadi Anda di direktori home Anda dan aktifkan:

git config --global core.excludesfile ~/.gitignore

Sekarang Anda dapat memasukkan file apa pun yang dihasilkan oleh alat pengembangan ke dalam .gitignorefile Anda .

Elnur Abdurrakhimov
sumber
6

biasanya, praktik terbaiknya adalah menyertakan .gitignorefile dalam direktori root proyek

Ajey
sumber