我剛學會如何還原分支。這工作正常。事情是,我標記了主人的提交,並且我打算使用git describe
命令來創建基於最新標記的部署。還原提交創建一個新的提交,所以git describe
命令輸出與提交ammend標籤,就像這樣:還原分支更改git的標記名稱描述
前:
git describe
1-2-0
恢復「回」到在此之後提交:
git describe
1-2-0-1ga99ae04
有沒有辦法解決這個問題?或者我應該得到不同的最新標籤?
我剛學會如何還原分支。這工作正常。事情是,我標記了主人的提交,並且我打算使用git describe
命令來創建基於最新標記的部署。還原提交創建一個新的提交,所以git describe
命令輸出與提交ammend標籤,就像這樣:還原分支更改git的標記名稱描述
前:
git describe
1-2-0
恢復「回」到在此之後提交:
git describe
1-2-0-1ga99ae04
有沒有辦法解決這個問題?或者我應該得到不同的最新標籤?
只是要清楚。你真的沒有回覆「回來」。假設你有以下歷史。
A<--B<--C<--D
|
(tag:1-2-0)
現在說你回覆C
。這是發生了什麼事。
A<--B<--C<--D<--E
|
(tag:1-2-0)
正如你所看到的,你已經向前邁進了歷史。如果這個標籤已經被釋放,那麼你可能想要考慮這個「修補程序」,並再次標記爲1-2-0-1
,或沿着這些線。不知道你的版本號方案是什麼,所以顯然只是在你的過程中使用修補程序。
考慮到此更改,修復程序會導致此問題。
(tag:1-2-0-1)
|
A<--B<--C<--D<--E
|
(tag:1-2-0)
但是,如果您還沒有公佈,甚至推這個標籤到遠程,只是要移動的標籤指向E
,那麼你可以做這兩種方式。易於記憶的方式是刪除標籤並重新創建。
git tag -d 1-2-0
git tag 1-2-0 E
越短,速度更快,但無限的不太友好的方式來改變標籤而不刪除它是使用update-ref
。
git update-ref refs/tags/1-2-0 E
在奇怪的情況下,您已經將標籤推入並希望將其從遠程移除,請使用以下語法。
git push <remote> :1-2-0
假設原產地是您的遙遠。
你想要什麼樣的行爲?看起來你不希望Git告訴你,如果在此之後提交了1-2-0標記,並且沒有任何更改,即使某些提交反轉了其他一些提交。如果你想回到1-2-0標籤,只需'git checkout 1-2-0'。 – 2013-04-25 14:08:30
是的,我明白你的意思。我不能只檢出1-2-0標籤,因爲我想將分支實際恢復到該狀態。我希望它完全恢復的行爲並使主分支處於1-2-0狀態。 – Kriem 2013-04-25 14:22:17