Saya mencoba untuk memilih komit dari master dan memasukkannya ke dalam cabang produksi saat ini. Namun, ketika saya mengeksekusi git cherry-pick <SHA-hash>
, saya hanya mendapatkan pesan ini:
# On branch prod_20110801
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
# site/test-result/
nothing added to commit but untracked files present (use "git add" to track)
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:
git commit --allow-empty
Otherwise, please use 'git reset'
Catatan: Saya sudah mencoba melakukan reset dan reset --hard HEAD ^, dan sepertinya tidak ada yang mengubah apa pun.
Saya bingung mengapa ini tidak berhasil untuk saya.
Setiap wawasan, saran, atau ide tentang cara mengatasinya akan sangat membantu ~!
git
branching-and-merging
cherry-pick
Jay Taylor
sumber
sumber
Jawaban:
Git menyelesaikan cherry-pick sebagai no-op - semua perubahan yang diperkenalkan oleh komit itu telah diperkenalkan oleh beberapa komit pada cabang Anda saat ini. (Atau begitulah yang dipikirkan Git.) Verifikasi bahwa komit yang Anda pilih belum digabungkan, baik sebagai gabungan yang tepat, rebase / pilih ceri, atau tambalan sedikit demi sedikit. (Gunakan
git show <commit-id>
untuk melihat perbedaannya.)sumber
Dalam kasus saya, hal ini membuat saya gila, karena cukup jelas bahwa komitmen khusus yang ingin saya pilih belum digabungkan ke dalam cabang saya saat ini.
Ternyata seseorang sudah memilih komit seminggu sebelumnya. The perubahan , tetapi tidak SHA tertentu, sudah di cabang saya saat ini, dan aku tidak melihat mereka.
Periksa file yang Anda coba pilih. Jika mereka sudah memiliki perubahan, versi dari komit telah dipilih atau ditambahkan dengan cara lain. Dengan demikian tidak perlu memetik ceri lagi.
sumber
git log --graph --pretty --decorate --oneline
untuk melihat apakah SHA tertentu ada di cabang saya atau tidak. Lihat jawaban saya di bawah ini tentang bagaimana Anda juga bisa bingung berdasarkan pemikiran pesan komit adalah indikasi perubahan - ada situasi di mana tidak, dan itulah yang membawa saya ke pertanyaan ini pada awalnya. Otak seseorang cenderung membuat jalan pintas itu dan mereka kadang-kadang dapat kembali untuk menggigit Anda.Juga perhatikan bahwa menambahkan file kosong (misalnya
.gitkeep
) ke pohon dianggap oleh cherry-pick sebagai komit kosong.sumber
Jadi, inilah Situasi Membingungkan Lain di mana hal ini bisa muncul: Saya memiliki yang berikut:
Saya mencoba memilih 9a7b12e ceri yang tampaknya bukan apa-apa - bahkan mencoba memberi tahu saya di baris itu di keluaran log git bahwa 4497428 adalah apa yang sebenarnya saya inginkan. (Apa yang saya lakukan hanyalah mencari pesan komit dan mengambil hash pertama yang saya lihat yang memilikinya). Bagaimanapun, hanya ingin memberi tahu orang-orang bahwa ada cara lain Anda bisa tertipu untuk mencoba memilih ceri tidak.
sumber