Saya memiliki dua cabang: master dan dev
Saya ingin membuat "cabang fitur" dari cabang dev .
Saat ini di dev cabang, saya lakukan:
$ git checkout -b myfeature dev
... (beberapa pekerjaan)
$ git commit -am "blablabla"
$ git push origin myfeature
Tetapi, setelah memvisualisasikan cabang saya, saya mendapat:
--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**
Maksud saya, cabang itu tampaknya bergabung, dan saya tidak mengerti mengapa ...
Apa yang saya lakukan salah?
Bisakah Anda jelaskan saya bagaimana Anda bercabang dari cabang lain dan mendorong kembali ke repositori jauh untuk cabang fitur?
Semua itu dalam model percabangan seperti yang dijelaskan di sini .
sumber
myFeature
setelah digabungkan dengan kecerdasandev
?myFeature
cabang didorong ke server sebelum penggabungan, maka tidak ada. Tetapi jikamyFeature
belum didorong ke server dan Anda ingin itu muncul di server, Anda harus mendorongnya appart.git checkout -b myFeature dev
sama dengan 3 perintah ini:git checkout dev
, kemudiangit branch myFeature
, dan kemudiangit checkout myFeature
?--no-ff
tampak seperti penggabunganJika Anda ingin membuat cabang baru dari salah satu cabang yang ada di Git, cukup ikuti opsi.
Pertama-tama ubah / checkout ke cabang dari tempat Anda ingin membuat cabang baru. Misalnya, jika Anda memiliki cabang berikut seperti:
Jadi jika Anda ingin membuat cabang baru bernama "subbranch_of_b1" di bawah cabang bernama "branch1" ikuti langkah-langkah:
Periksa atau ubah menjadi "branch1"
Sekarang buat cabang baru Anda yang disebut "subbranch_of_b1" di bawah "branch1" menggunakan perintah berikut.
Di atas akan membuat cabang baru bernama subbranch_of_b1 di bawah branch1 cabang (perhatikan bahwa
branch1
dalam perintah di atas tidak wajib karena KEPALA saat ini menunjuk ke sana, Anda dapat tepat itu jika Anda berada di cabang yang berbeda).Sekarang setelah bekerja dengan subbranch_of_b1 Anda dapat melakukan dan mendorong atau menggabungkannya secara lokal atau jarak jauh.
dorong subbranch_of_b1 ke jarak jauh
sumber
git checkout -b some-branch
ini singkatangit checkout -b some-branch master
. Ternyata itugit checkout -b some-branch
adalah singkatan untukgit checkout -b some-branch <current_active_branch>
Buat Cabang
$ git branch branch1
$ git branch branch2
Periksa Cabang
git checkout beralih perintah cabang atau mengembalikan file pohon yang berfungsi
$ git checkout branchname
Mengganti Nama Cabang
$ git branch -m branch1 newbranchname
Hapus Cabang
$ git branch -d branch-to-delete
$ git branch -D branch-to-delete
( paksaan penghapusan tanpa memeriksa status gabungan )Buat dan Ganti Cabang
$ git checkout -b branchname
Cabang yang sepenuhnya termasuk
$ git branch --merged
************************** Perbedaan Cabang [git diff branch1..branch2] ************** **********
Perbedaan multiline$ git diff master..branch1
$ git diff --color-words branch1..branch2
sumber
git push origin :old-name new-name
untuk menghapus cabang jarak jauh nama lama dan mendorong cabang lokal nama baru.Lakukan pekerjaan simultan di
dev
cabang. Apa yang terjadi adalah bahwa dalam skenario Anda, cabang fitur bergerak maju dari ujung cabang dev, tetapi cabang dev tidak berubah. Lebih mudah untuk menggambar sebagai garis lurus, karena dapat dianggap sebagai gerak maju. Anda membuatnya ke titik A pada dev, dan dari sana Anda hanya melanjutkan pada jalur paralel. Kedua cabang belum benar-benar menyimpang.Sekarang, jika Anda membuat komit pada dev, sebelum penggabungan, Anda akan mulai lagi pada komit yang sama, A, tetapi sekarang fitur akan pergi ke C dan dev ke B. Ini akan menunjukkan pemisahan yang Anda coba visualisasikan, seperti cabang-cabangnya sekarang telah menyimpang.
Melawan
sumber
Git 2.23 memperkenalkan
git switch
dangit restore
membagi tanggung jawabgit checkout
Membuat cabang baru dari cabang yang sudah ada pada git 2.23:
git switch -c my-new-branch
Beralih ke cabang baru 'cabang-baru-saya'
Lihatlah posting blog Github ini menjelaskan perubahan secara lebih rinci:
sumber
Untuk membuat cabang dari cabang lain di direktori lokal Anda, Anda dapat menggunakan perintah berikut.
Sebagai contoh:
sumber
Jika Anda ingin membuat cabang dari cabang lain, ikuti langkah-langkah di bawah ini:
Asumsi :
BranchExisting
adalah nama cabang tempat Anda perlu membuat cabang baru dengan namaBranchMyNew
.Langkah-langkah :
Ambil cabang ke mesin lokal Anda.
Perintah ini akan membuat cabang baru di lokal Anda dengan nama cabang yang sama.
Sekarang, dari checkout cabang utama ke cabang yang baru diambil
Anda sekarang berada di BranchExisting. Sekarang buat cabang baru dari cabang yang ada ini.
Ini dia!
sumber
Untuk membuat cabang dari yang lain dapat menggunakan sintaks ini juga:
Ini sedikit lebih pendek dari "git checkout -b" + "git push origin"
sumber