亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

裁剪Git提交/壓縮Git歷史記錄

裁剪Git提交/壓縮Git歷史記錄

Git
瀟瀟雨雨 2019-08-02 07:03:35
裁剪Git提交/壓縮Git歷史記錄我每隔幾分鐘將我的代碼簽入一個Git分支中,這些評論最終會變成“一切都壞了,重新開始”之類的東西,以及其他荒謬的東西。然后每隔幾分鐘/每小時/每一天,我就認真地提交一條真正的評論,比如“修正bug#22.55,第三次”。我如何區分這兩個概念?我希望能夠刪除所有我經常提交的,只留下那些嚴重的。
查看完整描述

3 回答

?
LEATH

TA貢獻1936條經驗 獲得超7個贊

用軟復位代替重基對壁球歷史的影響

我覺得長度Vonc的答案說明了很多-字面上說-是多么復雜git rebase是。這是我的擴展對我的一個問題的另一個回答.

  1. 你有一支樹枝

    ticket-201

    你的分支

    master

    ..你想假裝所有的提交

    ticket-201

    從來沒有發生過,但你一舉完成了所有的工作。
  2. 軟重置到分支點,使用

    git reset --soft hash

    哪里

    hash

    中的提交散列。

    ticket-201

    原木。
  3. 使用Add提交更改,然后提交。現在,分支歷史將只有第一次提交和新的提交與新的內容。

在不同的分支中根據任意提交創建歷史

使用重置,您可以重寫您認為合適的歷史,盡管您的編輯將失去擁有正確的時間戳的魅力。假設您不關心這個問題(文件上的時間/日期可能就足夠了?),或者如果您想在執行過程中篡改提交,可以執行以下步驟:

  1. 檢查一個新的分支機構

    commit0

    (假裝這是一個哈希):

    git checkout -b new-history commit0

  2. 現在你可以從

    commit5git reset --hard commit5

  3. 切換回索引點:

    git reset --soft commit0

  4. 提交,這將是分支中的第二次提交。

這個想法簡單、有效、靈活。




查看完整回答
反對 回復 2019-08-05
?
慕森王

TA貢獻1777條經驗 獲得超3個贊

用南瓜代替

最近,我在另一個分支工作squash..另一個分支名為temp,然后我使用git merge temp --squash將其帶入被推送到服務器的真正分支。

工作流是這樣的,假設我在Ticket65252:

git branch -d temp #remove old temp bbranch
git checkout -b temp
# work work work, committing all the way
git checkout Ticket65252
git merge temp --squash
git commit -m "Some message here"

優于使用rebase?不那么復雜了。

優于使用reset --hard然后reset --soft?不太容易混淆,也不容易出錯。




查看完整回答
反對 回復 2019-08-05
  • 3 回答
  • 0 關注
  • 513 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號