cari

Rumah  >  Soal Jawab  >  teks badan

git remote commit merge

Sebagai contoh, terdapat 100 rekod komit pada cawangan induk jauh

Sekarang saya ingin menggabungkan 1-10 komit menjadi satu komit, [seolah-olah saya hanya menyerahkan sekali] dan mengekalkan 11-100 komit yang lain tidak berubah. Bagaimana untuk mencapai

Selepas melihat git rebase -i, nampaknya hanya cawangan tempatan boleh digabungkan. Bagaimanakah cawangan terpencil akan terjejas selepas digabungkan?

曾经蜡笔没有小新曾经蜡笔没有小新2848 hari yang lalu677

membalas semua(2)saya akan balas

  • 阿神

    阿神2017-05-02 09:49:56

    git rebase -i HEAD~99
    Kemudian tukar pick di hadapan 10 commit paling jauh untuk skuasy.
    Kemudian force commit git push -f
    Cubalah, saya tidak tahu sama ada ia berkesan

    balas
    0
  • 巴扎黑

    巴扎黑2017-05-02 09:49:56

    Cara yang disebutkan di atas adalah betul, tetapi ia sepatutnya git rebase -i HEAD~100. HEAD~99 Hanya 2 hingga 100 kiriman boleh dibaca, tetapi hantaran pertama tidak boleh dibaca.

    Selain itu, selepas menemui 10 komitmen terjauh, anda sebenarnya tidak perlu menukarnya kepada skuasy (atau s) Jika anda tidak bercadang untuk menyimpan maklumat komit, hanya gunakan fixup (atau f). .

    Selepas pengubahsuaian, ia mestilah git push -f kerana garis masa anda dan cincang komit seterusnya telah berubah Sudah tentu, kod anda tidak akan berubah


    Memandangkan ia mungkin mengambil masa yang lama untuk menatal dari yang terakhir kepada yang pertama. . Sediakan idea lain (selepas ini, <xxx> digunakan untuk mewakili pembolehubah, dan tidak perlu menaip < dan >. Tetapi simbol lain mesti ditaip):

    1. Buat cawangan baharu berdasarkan cawangan semasa: git checkout -b newBranch

    2. Kembali ke sebelum komit pertama pada cawangan baharu: git reset --hard <commit1Hash>

    3. Cherry pilih sepuluh komitmen pertama dan masukkannya ke dalam penimbal: git cherry-pick -n <commit1Hash>..<commit10Hash>

    4. Serahkan sepuluh komitmen ini. git commit -m "<xxxx>"

    5. Cherry pilih komitmen yang selebihnya dan jangan letakkannya dalam penimbal (tambahkan terus ke garis masa): git cherry-pick -n <commit11Hash>..<commit100Hash>

    Dengan cara ini anda telah melakukan apa yang anda mahu pada cawangan baharu. Hanya gabungkannya ke dalam cawangan yang anda mahu ubah suai

    balas
    0
  • Batalbalas