Bagaimana cara mengabaikan semua file dalam folder dengan repositori Git di Sourcetree?

86

Saya memiliki repositori Bitbucket Git yang dikelola dengan Sourcetree.

Saya memiliki dua folder yang ingin saya komit, tetapi saya perlu mengabaikan semua file di folder ini, karena folder tersebut hanya berisi file sementara.

Bagaimana saya bisa melakukan itu?

rubdottocom.dll
sumber

Jawaban:

54

Tambahkan ini ke .gitignore:

*
!.gitignore
Gergo Erdosi
sumber
13
Ini harus ditambahkan di dalam setiap folder yang ingin Anda lacak. Adanya file ini sendiri akan membuat git melacak folder tersebut (dengan melacak file ini). Cara *abaikan semua file, dan !.gitignorecara jangan mengabaikan file itu sendiri
Billy Moon
2
Seperti yang dijelaskan Billy Moon, terima kasih. Jadi Anda bisa membuat file .gitignore di direktori. File ini memberi tahu Git apa yang harus diabaikan atau tidak.
Gergo Erdosi
21
Bagaimana Anda melakukan ini di SourceTree?
1,21 gigawatt
1
Anda tidak memerlukan SourceTree untuk ini, ini .gitginoreadalah file biasa, cukup buat di direktori yang kontennya ingin Anda abaikan.
Gergo Erdosi
1
Seperti yang disebutkan oleh @ AD7six bawah, jangan tidak menambahkan! Gitignore ke berkas ini tidak perlu.
Xcalibur
155

Untuk pengguna Sourcetree: Jika Anda ingin mengabaikan folder tertentu, cukup pilih file dari folder ini, klik kanan padanya dan lakukan "Abaikan ...". Anda akan melihat menu pop-up di mana Anda dapat mengabaikan "Abaikan semua yang ada di bawah: <YOUR UNWANTED FOLDER>"

Menu pertama

Menu kedua

Jika Anda memiliki opsi "Abaikan" berwarna abu-abu, Anda harus memilih opsi "Hentikan Pelacakan". Setelah itu file akan ditambahkan ke file Staged dengan tanda minus pada icon background merah dan icon file pada daftar file Unstaged akan berubah menjadi tanda tanya dengan background ungu. Sekarang dalam daftar file tidak bertahap , opsi "Abaikan" diaktifkan kembali. Lakukan saja seperti yang dijelaskan di atas.

Kalzem
sumber
14
Jika folder sudah dikomit, hapus dulu, lakukan perubahan, lalu ikuti langkah-langkah di atas.
RMorrisey
16
Saya memiliki opsi "Abaikan" yang berwarna abu-abu. Ada yang tahu kenapa?
Andrei Karcheuski
6
Abaikan juga berwarna abu-abu bagi saya.
Mikha Zoltu
apakah abaikan tambahkan ke git abaikan? jika tidak mengapa tidak?
Joe Lloyd
1
@JoeLloyd ya itu menambah git ignore. Anda bahkan dapat melakukan file abaikan git yang dibuat / diedit seperti file lainnya.
Kalzem
24

Klik kanan pada file → AbaikanAbaikan semua yang ada di bawahnya .

Jika opsi Abaikan berwarna abu-abu, maka:

  1. Panggung file terlebih dahulu
  2. Klik kanan → Hentikan Pelacakan
  3. File itu akan muncul pada panel di bawah ini dengan tanda tanya → Klik kanan padanya → Abaikan

Masukkan deskripsi gambar di sini

Andrei Karcheuski
sumber
7

Sejauh yang saya tahu, Git tidak melacak folder, hanya file - jadi folder kosong (atau folder di mana semua file diabaikan) tidak dapat dilakukan. Jika Anda, misalnya, membutuhkan folder untuk hadir karena beberapa langkah dalam proses pembangunan Anda, mungkin Anda dapat meminta alat pembangunan Anda untuk membuatnya? Atau Anda bisa meletakkan satu file kosong dan tidak diabaikan di folder dan mengkomitnya.

Aasmund Eldhuset
sumber
1
Maksud Anda, jika saya ingin melacak folder, saya harus menambahkan file "dummy" dan mengabaikan sisanya? : - /
rubdottocom
2
@rubdottocom: Saya yakin begitu; folder ada di git hanya karena file yang ada di dalamnya. Mengapa Anda perlu mengontrol versi folder kosong?
Aasmund Eldhuset
2
Ada banyak alasan untuk melacak folder kosong. Anda mungkin ingin checkout memiliki folder yang siap digunakan orang, tanpa harus membuatnya satu per satu. Kode Anda mungkin bergantung pada keberadaan folder tertentu, misalnya folder yang mengharapkan upload, dan jika folder tersebut tidak ada, gagal untuk mengupload file di sana dll ...
Billy Moon
Atas alasan yang dijelaskan oleh @AasmundEldhuset, jawaban yang diberikan Gergo adalah solusi yang tepat.
Billy Moon
@BillyMoon: Saya setuju bahwa mungkin ada alasan; Aku bertanya-tanya tentang apa itu kebutuhan khusus yang, sehingga kami bisa menyarankan solusi yang paling cocok. :-) Trik Gergo rapi, meskipun itu berarti menambahkan (lebih atau kurang) file tiruan ke folder, seperti yang saya sarankan. Solusinya lebih git-ish, jadi +1 untuknya.
Aasmund Eldhuset
5

Setelah memikirkan hal ini setidaknya selama satu jam, saya menawarkan jawaban ini untuk mencoba memperluas komentar beberapa orang lain. Untuk mengabaikan folder / direktori, lakukan hal berikut: jika Anda tidak memiliki file .gitignore di root proyek Anda (namanya persis ".gitignore"), buat file teks tiruan di folder yang ingin Anda kecualikan. Di dalam Source Tree, klik kanan padanya dan pilih Ignore. Anda akan mendapatkan popup yang terlihat seperti ini.

masukkan deskripsi gambar di sini

Pilih "Semuanya di bawah" dan pilih folder yang ingin Anda abaikan dari daftar drop-down. Ini akan membuat file .gitignore di direktori root Anda dan memasukkan spesifikasi folder di dalamnya.

Jika Anda memiliki folder .gitignore yang sudah ada di folder root, Anda dapat mengikuti pendekatan yang sama di atas, atau Anda dapat mengedit file .gitignore dan menambahkan folder yang ingin Anda kecualikan. Itu hanya file teks. Perhatikan bahwa ia menggunakan garis miring ke depan dalam nama jalur daripada garis miring terbalik, seperti yang biasa kita gunakan sebagai pengguna Windows. Saya mencoba membuat file teks .gitignore dengan tangan di Windows Explorer, tetapi tidak mengizinkan saya membuat file tanpa nama (yaitu hanya dengan ekstensi).

Perhatikan bahwa menambahkan .gitignore dan spesifikasi file tidak akan berpengaruh pada file yang sudah dilacak. Jika Anda sudah melacaknya, Anda harus berhenti melacaknya. (Klik kanan pada folder atau file dan pilih Stop Tracking.) Anda kemudian akan melihatnya berubah dari ikon hijau / bersih atau kuning / berubah menjadi ikon merah / dihapus. Pada komit Anda berikutnya, file akan dihapus dari repositori dan setelah itu muncul dengan ikon biru / diabaikan. Kontributor lain bertanya mengapa Abaikan dinonaktifkan untuk file tertentu dan saya yakin itu karena dia mencoba mengabaikan file yang sudah dilacak. Anda hanya dapat mengabaikan file yang memiliki ikon tanda tanya biru.

Karl Hoaglund
sumber
Untuk membuat file .gitignore di Widnows, gunakan perintah Git bash 'touch .gitignore'
Mikee
4

Seperti yang disebutkan oleh orang lain: git tidak melacak folder, hanya file.

Anda dapat memastikan folder ada dengan perintah berikut (atau logika yang setara):

echo "*" > keepthisfolder/.gitignore
git add --force keepthisfolder/.gitignore
git commit -m "adding git ignore file to keepthisfolder"

Keberadaan file berarti siapa pun yang memeriksa repositori akan memiliki folder tersebut.

Isi dari file gitignore akan berarti apapun di dalamnya diabaikan

Anda tidak perlu mengabaikan file .gitignore itu sendiri . Ini adalah aturan yang tidak akan memiliki tujuan sama sekali setelah dilakukan.

ATAU

jika Anda lebih suka menyimpan semua definisi abaikan di tempat yang sama, Anda dapat membuat .gitignore di root proyek Anda dengan konten seperti ini:

*.tmp # example, ignore all .tmp files in any folder
path/to/keepthisfolder
path/to/keepthatfolder

dan untuk memastikan foldernya ada

touch path/to/keepthisfolder/anything
git add --force path/to/keepthisfolder/anything
git commit -m "ensure keepthisfolder exists when checked out"

"apapun" secara harfiah bisa menjadi apa saja. Nama umum yang digunakan adalah .gitignore, .gitkeep, kosong.

AD7six
sumber
3

Jika Anda Abaikan opsi berwarna abu-abu, Anda harus berhenti melacak file sebelum dapat mengabaikannya. Anda cukup klik kanan pada file tersebut dan tekan "Stop Tracking".

Ikon biru akan muncul di sebelahnya. Klik kanan lagi dan klik abaikan.

LeRoy
sumber
2

Abaikan folder lengkap di pohon sumber.

   Just Open Repository >Repository setting > Edit git ignore File and 
   you can rite some thing like this :

 *.pdb 
*.bak 
*.dll
*.lib 
.gitignore
packages/ 
*/bin/
*/obj/ 

Untuk folder bin dan folder obj tulis saja: * / bin / * / obj /

Rajesh Kumar
sumber
0
  • Abaikan semua file di folder dengan Git di Sourcetree:

Abaikan semua file di folder dengan Git di Sourcetree

Yatko
sumber
-1

Di Sourcetree: Abaikan saja file di folder tertentu. Sourcetree akan menanyakan apakah Anda ingin mengabaikan semua file di folder itu. Itu sempurna!

AVEbrahimi
sumber
14
-1 Jawaban yang tidak ada gunanya. Karena Anda tidak menjelaskan bagaimana melakukan ignore (di sourcetree)!
Insinyur