我提交了一些本地修改。
現在我想把這些提交的內容移到一個分支里,以便以后使用
(以便開始在我提交之前的版本上作業)。我已經閱讀了所有類似問題的標題,它們要么是假設,
我已經閱讀了所有類似問題的標題。
- 一個人想把提交從一個分支移到另一個分支,或者 他們認為一個人想把提交從一個分支移到另一個分支。
- 他們假設一個人想把未提交的修改移到一個分支里。
- 其他問題要求在(現有)分支之間移動。我想創建一個分支。
git status告訴我以下情況:
hostname /dir : git status
在分支 master 上
你的分支比'origin/master'多了10個提交。
(使用 "git push "來發布你的本地提交)。)
沒有提交的改動。
(用 "git add <file>... "來更新將要提交的內容)
(使用 "git checkout -- <file>... "來丟棄作業目錄中的修改)。)
沒有添加到提交中的變化(使用 "git add "和/或 "git commit -a")。
hostname /dir :
uj5u.com熱心網友回復:
假設你的版本庫是這樣開始的,在main上有三個提交。
A - B - C [main] 。
我提交了一些本地修改。
估計是在你的主分支。讓我們把它們稱為 1、2 和 3。
A - B - C - 1 - 2 - 3 [main] 。
現在我想把這些提交移到一個分支中,以便以后使用
你不是在移動提交,而是在移動分支。與你可能熟悉的其他版本控制系統不同,分支只是一個指向提交的標簽。 main指向提交3。
首先,在 check out main 的情況下,建立一個新的分支。這將指向與 main 相同的提交,即 3,它等同于 main。
$ git branch other A - B - C - 1 - 2 - 3 [main] 。 [其他]現在將 main 移回到提交 C。你必須使用
。git log來弄清楚哪個提交 ID 是 C.同樣,這只是移動一個指向提交的標簽而已。
$ git reset --hard C A - B - C [主] 1 - 2 - 3 [其他]注意,只有我的畫法發生了變化,使之更容易畫出來,提交的內容是完全一樣的。C和1之間的連接沒有什么特別的地方,除了提交的主要內容外沒有任何變化。
uj5u.com熱心網友回復:
從我認為我所理解的(并且從未在任何地方找到如此明確的陳述):
- 一個分支總是樹上的一個點。它不包含關于創建它的樹上的原始點的資訊。
- 合并是通過遍歷樹,直到共同的根,并應用在兩個分支中發現的所有提交來完成的
。因此,以下兩種情況會產生相同的結果:
在提交后創建分支 。
- 編輯
- commit
- 創建分支
。- reset & checkout
- 在提交前創建分支
- 創建分支
- 切換到分支
- 編輯
- commit
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/308155.html
標籤:
