Bagaimana cara menyalin semua file dalam direktori dari cabang lain? Saya dapat membuat daftar semua file dalam direktori itu dengan melakukan
git ls-tree master:dirname
Saya kemudian dapat menyalin semua file secara individu dengan melakukan
git checkout master -- dirname/filename
Namun, menggunakan wildcard sejauh ini gagal total. Ini tidak melakukan apa-apa:
git checkout master -- dirname/*.png
Meskipun saya kira saya dapat menggunakan skrip bash untuk melakukan itu, harus ada cara yang lebih mudah, bukan?
git checkout master -- dirname; git add dirname; git commit -c $COMMIT_SHA1 --reset-author;
mana$COMMIT_SHA1
bisa sepertibranch_a
dan akan menjadi objek komit yang memiliki pesan komit yang Anda inginkan. Saya tidak tahu bagaimana cara menentukan komit dengan perubahan terbaru kedirname
dirname
atas, tetapi juga salinan file yang berada di.gitignore
satumaster
cabang. Adakah yang tahu mengapa itu terjadi?cherry-pick
. Ini berlaku komit dari cabang lain, tetapi hanya file yang diubah dalam komit yang Anda inginkan.Jika tidak ada spasi di jalur, dan Anda tertarik, seperti saya, hanya di file ekstensi tertentu, Anda dapat menggunakan
sumber
git checkout master -- *.c