Dengan Git 2.15 (Q4 2017), " git branch
" belajar " -c/-C
" untuk membuat cabang baru dengan menyalin yang sudah ada.
Lihat komit c8b2cec (18 Jun 2017) oleh Ævar Arnfjörð Bjarmason ( avar
) .
Lihat komit 52d59cc , komit 5463caa (18 Jun 2017) oleh Sahil Dua ( sahildua2305
) .
(Digabung oleh Junio C Hamano - gitster
- di komit 3b48045 , 03 Okt 2017)
branch
: tambahkan opsi --copy
( -c
) untuk digunakan bersama --move
( -m
)
Tambahkan kemampuan ke --copy
cabang dan reflog serta konfigurasinya, ini menggunakan mesin dasar yang sama dengan opsi --move
( -m
) kecuali reflog dan konfigurasi disalin alih-alih dipindahkan.
Ini berguna untuk misalnya menyalin cabang topik ke versi baru, misalnya work
untuk work-2
setelah mengirimkan work
topik ke daftar, sambil mempertahankan semua info pelacakan dan konfigurasi lain yang berjalan dengan cabang, dan tidak seperti --move
menjaga cabang lain yang sudah dikirimkan untuk sekitar referensi.
Catatan: saat menyalin cabang, Anda tetap di cabang saat ini.
Seperti yang dijelaskan Junio C Hamano:
Saat membuat cabang baru B
dengan menyalin cabang A
yang kebetulan menjadi cabang saat ini, itu juga memperbarui HEAD
untuk menunjuk ke cabang baru.
Mungkin dibuat seperti ini karena " git branch -c A B
" mendukung implementasi pada " git branch -m A B
",
Ini tidak sesuai dengan harapan yang biasa.
Jika saya duduk di kursi biru, dan seseorang datang dan mengecatnya menjadi merah, saya akan menerima akhirnya duduk di kursi yang sekarang merah (saya juga OK untuk berdiri, sebagai gantinya, karena tidak ada lagi kursi biru favorit saya ).
Tetapi jika seseorang membuat kursi merah baru, memodelkannya setelah kursi biru tempat saya duduk, saya tidak berharap untuk di-boot dari kursi biru dan akhirnya duduk di kursi merah yang baru.
git branch -c A B
. Lihat jawaban saya di bawah ini