Apakah mungkin untuk melakukan dan mendorong perubahan dari satu cabang ke cabang lainnya.
Asumsikan saya melakukan perubahan pada BRANCH1 dan ingin mendorongnya ke BRANCH2 .
Dari BRANCH1 , apakah valid untuk melakukan:
git push origin **BRANCH2**
Dan kemudian reset BRANCH1?
git
git-branch
jviotti
sumber
sumber
branch1
danbranch2
perlu berada di remote? Bagaimana jika Anda ingin mendorong dari lokalbranch1
ke remoteorigin branch2
?<remote>/<branch>
git push origin :branch2
sambil berpikir bahwa itu hanya akan mendorong cabang lokal saat ini ke remotebranch2
, bahwa ia malah akan menghapus remotebranch2
! Cara yang benar adalahgit push origin HEAD:branch2
.Tentu saja, meskipun itu hanya akan berfungsi jika itu adalah kemajuan cepat dari BRANCH2 atau jika Anda memaksanya. Sintaks yang benar untuk melakukan hal seperti itu adalah
Lihat deskripsi "refspec" pada halaman manual git push untuk detail lebih lanjut tentang cara kerjanya. Perhatikan juga bahwa dorongan gaya dan reset adalah operasi yang "menulis ulang sejarah", dan tidak boleh dilakukan oleh orang yang lemah hati kecuali Anda benar-benar yakin Anda tahu apa yang Anda lakukan sehubungan dengan repositori jarak jauh dan lainnya. orang yang memiliki garpu / klon dari proyek yang sama.
sumber
git push --force remote local-branch:remote-branch
.Ini sangat sederhana. Misalkan Anda telah membuat perubahan pada Cabang A Anda yang berada di kedua tempat secara lokal dan jarak jauh tetapi Anda ingin mendorong perubahan ini ke Cabang B yang tidak ada di mana pun.
Langkah-01: buat dan alihkan ke cabang baru B
Langkah-02: Tambahkan perubahan di cabang lokal baru
Langkah-03: Lakukan perubahan
Langkah-04: Dorong perubahan pada cabang baru B . Perintah di bawah ini akan membuat cabang B baru juga dari jarak jauh
Sekarang, Anda dapat memverifikasi dari bitbucket bahwa cabang B akan memiliki satu lagi komit dari cabang A . Dan ketika Anda akan checkout cabang A perubahan ini tidak akan ada seperti ini telah didorong ke cabang B .
Catatan: Jika Anda telah melakukan perubahan Anda ke cabang A dan setelah itu Anda ingin menggeser perubahan itu ke cabang baru B maka Anda harus mengatur ulang perubahan itu terlebih dahulu. #HappyLearning
sumber
Dalam kasus saya, saya memiliki satu komit lokal, yang tidak didorong
origin\master
, tetapi berkomitmen kemaster
cabang lokal saya . Komit lokal ini sekarang harus didorong ke cabang lain.Dengan Git Extensions Anda dapat melakukan sesuatu seperti ini:
Anda juga bisa melakukannya di baris perintah GIT . Contoh yang disalin dari David Christensen :
sumber
Saya mendapat hasil yang buruk dengan
git push origin branch1:branch2
perintah:Dalam kasus saya,
branch2
dihapus danbranch1
telah diperbarui dengan beberapa perubahan baru.Karenanya, jika Anda hanya menginginkan perubahan
branch2
daribranch1
, coba prosedur di bawah ini:branch1
:git add .
branch1
:git commit -m 'comments'
Pada
branch1
:git push origin branch1
Pada
branch2
:git pull origin branch1
Hidup
branch1
: kembali ke komit sebelumnya.sumber
Anda dapat melakukan ini dengan mudah
sumber
sumber
Anda telah berkomitmen untuk BRANCH1 dan ingin menyingkirkan komitmen ini tanpa kehilangan perubahan? git reset adalah yang Anda butuhkan. Melakukan:
jika Anda ingin BRANCH2 menjadi cabang baru. Anda juga dapat menggabungkan ini di akhir dengan cabang lain jika Anda mau. Jika BRANCH2 sudah ada, maka tinggalkan langkah ini.
Lalu lakukan:
jika Anda ingin mengatur ulang komit pada cabang yang telah Anda komit. Ini mengambil perubahan dari tiga komitmen terakhir.
Kemudian lakukan hal berikut untuk membawa komitmen yang dipindahkan ke BRANCH2
Sumber ini bermanfaat: https://git-scm.com/docs/git-reset#git-reset-Undoacommitmakingitatopicbranch
sumber