簡體   English   中英

Git從舊版本分支並回滾當前分支

[英]Git branching from an older revision and rolling back the current branch

我不太了解Git,對於我們的一個存儲庫,我犯了一個錯誤。

我承諾並將更改推送到名為“core”的分支。 但后來我意識到我的改變不應該存在 - 我應該在幾個版本之前創建一個新的分支,比如說,“核心實驗”。

為了解釋,我有:

A---B---C---D---E     "core"

但現在我想改變它

A---B              "core"
    \
     C---D---E     "core-experimental"

我的團隊中沒有其他人已撤下我的更改,所以我所做的任何恢復都不應該給任何人帶來痛苦。

這對Git來說可能嗎?

其他兩個答案工作正常,但您實際上可以避免在工作樹中執行任何操作:

# create core-experimental using core as starting point
git branch core-experimental core
# move core
git branch -f core <SHA1 of B>

這樣,即使您在工作樹中進行了本地修改,也無需在結帳/重置期間更新一堆時間戳,這將導致您必須重建(假設這是一個已編譯的項目)。

git checkout core
git branch core-experimental
git reset --hard <SHA of B>
git push -f <remote> core

或者更具描述性......

  1. 結帳核心
  2. 在核心的HEAD創建實驗分支
  3. 將核心的HEAD重置回您想要的位置
  4. 強制推送更新核心

核心:

git branch core-experimental
git reset --hard <revision-B>

然后:

git push -f

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM