git 远程提交合并
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-02 09:47:56
0
2
632

例如远程master分支上有100次提交记录

现在想把1-10次提交合并成一次提交,【就好像我只提交过一次一样】其他11-100次提交保持不变。如何实现?

看了git rebase -i ,好像只能合并本地分支,合并以后怎么影响远程分支呢?

曾经蜡笔没有小新
曾经蜡笔没有小新

membalas semua(2)
阿神

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

巴扎黑

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan