Saya curiga Anda bingung di sini karena pada dasarnya membingungkan. Untuk membuat segalanya lebih buruk, semua barang kita / mereka berganti peran (menjadi mundur) ketika Anda melakukan rebase.
Pada akhirnya, selama git merge
, yang "kita" cabang mengacu pada cabang Anda penggabungan ke :
git checkout merge-into-ours
dan cabang "milik mereka" merujuk ke cabang (tunggal) yang Anda gabungkan:
git merge from-theirs
dan di sini "kita" dan "mereka" cukup masuk akal, karena meskipun "mereka" mungkin Anda pula, "mereka" adalah bukan yang Anda berada di saat Anda berlari git merge
.
Meskipun menggunakan nama cabang yang sebenarnya mungkin sangat keren, itu berantakan dalam kasus yang lebih kompleks. Misalnya, alih-alih yang di atas, Anda dapat melakukan:
git checkout ours
git merge 1234567
tempat Anda bergabung dengan ID komit mentah. Lebih buruk lagi, Anda bahkan dapat melakukan ini:
git checkout 7777777 # detach HEAD
git merge 1234567 # do a test merge
dalam hal ini tidak ada nama cabang yang terlibat!
Saya pikir ini sedikit membantu di sini, tetapi pada kenyataannya, dalam gitrevisions
sintaksis , Anda bisa merujuk ke jalur individual dalam indeks dengan nomor, selama penggabungan yang bertentangan
git show :1:README
git show :2:README
git show :3:README
Tahap # 1 adalah leluhur umum dari file, tahap # 2 adalah versi cabang-target, dan tahap # 3 adalah versi yang Anda gabungkan.
Alasan gagasan "milik kami" dan "milik mereka" dipertukarkan rebase
adalah karena rebase bekerja dengan melakukan serangkaian pemetik ceri, ke cabang anonim (mode HEAD yang terlepas). Cabang target adalah cabang anonim, dan cabang gabungan dari adalah cabang asli Anda (pra-rebase): jadi "--kami" berarti yang dibuat oleh salah satu rebase sementara "--theirs" berarti "cabang kami direstrukturisasi" .
Adapun entri gitattributes: itu bisa memiliki efek: "milik kita" benar-benar berarti "gunakan tahap # 2" secara internal. Tetapi seperti yang Anda perhatikan, itu sebenarnya tidak ada pada saat itu, jadi seharusnya tidak memiliki efek di sini ... well, tidak kecuali Anda menyalinnya ke pohon kerja sebelum Anda mulai.
Juga, omong-omong, ini berlaku untuk semua penggunaan milik kami dan milik mereka, tetapi beberapa berada pada tingkat file keseluruhan ( -s ours
untuk strategi penggabungan; git checkout --ours
selama konflik penggabungan) dan beberapa menggunakan sepotong demi sepotong ( -X ours
atau -X theirs
selama -s recursive
menggabungkan). Yang mungkin tidak membantu dengan kebingungan.
Tapi saya tidak pernah menemukan nama yang lebih baik untuk ini. Dan: lihat jawaban VonC untuk pertanyaan lain, di mana git mergetool
memperkenalkan lebih banyak nama untuk ini, menyebut mereka "lokal" dan "jauh"!