簡體   English   中英

我怎樣才能提交一個舊的git標簽?

[英]How can I commit to an old git tag?

因此,兩個月前,我將我們在SVN中的代碼庫遷移到了Git,並提供了完整的變更集歷史記錄。 緊接着,我們標記了一個新版本並繼續工作。 因此,雖然我們繼續使用新標簽,但是有些人繼續修復SVN中舊標簽中的錯誤,現在我想將所有這些更改添加到Git中的標記中。

我可以克隆標簽並讓Git讓我提交它,但是我不能用git-push推回任何東西。 檢查git-log,提交就在那里,但git-st告訴我,我目前不在任何分支上。

所以互聯網,我怎么能承諾一個舊的git標簽?

如果有人在搜索“替換git標簽”或類似內容后來到這里,我推薦以下方法:

git tag -d <tagname>
git checkout <new commit or branch>
git tag -a <tagname>
git push <remotename> <tagname> -f

例如:

git checkout 2.0
git tag -d v2.0
git tag -a v2.0 -m"Version 2.0"
git push origin v2.0 -f

希望這有助於某人。

標簽不可移動。 一旦創建了指向特定提交的標記,您就無法在以后更改該標記。

聽起來你打算創建一個分支。 你應該創建一個新的分支( git branch branchname && git checkout branchname )以確保你不會丟失你的提交。 然后將該分支推送到存儲庫,讓您的發布/錯誤修復開發人員在該分支中工作以進行發布。

你的意思是分支,而不是標記。 Git中的標簽是主分支中的時間點書簽。 雖然您可以覆蓋標簽( git tag -f ),但不建議這樣做。 如果標簽尚未部署,我將僅覆蓋標簽。

如果用戶正在使用用戶創建舊標記的相同分支,則首先創建新的更改列表。 否則簽出標簽,然后創建新的更改列表。 然后使用以下步驟使用新的更改列表編號更新現有標記

git tag -f <old tag name>

git push -f --tags

總計0(delta 0),重用0(delta 0)+ ... <old tag name> - > <old tag name> (強制更新)

這里有很多事情要做。

  1. 聽起來你對git tag的目的沒有充分的了解。 我建議閱讀該手冊頁以及Pro Git相關部分 Pro Git也對該工具以及Git Magic進行了一般性的介紹。

  2. 正如其他人所指出的那樣,你已經創建了一個分支並且正在提交它並且在這里錯誤地將它標識為標記,或者你實際上創建了一個標記並且已經在分支之外提交了新的提交,這非常令人困惑。 如果你還不知道的話,你肯定想要閱讀git分支以了解如何使用它。

  3. 聽起來你和你的團隊可以使用支持多個發布,維護和開發流程的工作流程,為此我會謙虛地向Vincent Driessen提出這個最優秀的指南 我和我的團隊在我上一個雇主那里介紹了這個,它改變了我們的工作方式。 閱讀這應該會讓你非常了解git如何最好地支持你的團隊可能已經嘗試工作的方式。

  4. 無法直接提交舊標簽。 正如其他人所指出的,標簽只不過是特定提交的名稱。 但是,我在這里有一些想法可能對你有用。

    1. 您可以隨時通過git checkout -b my-new-branch name-of-tag檢查基於標簽git checkout -b my-new-branch name-of-tag 這將為您提供基於該標簽的全新分支,然后您可以提交。 共享該分支就像將其推送到公共接觸點並讓其他人拉下來一樣簡單。

    2. 如果你想要一個移動的標簽,你就會做一些“瘋狂”的事情(至少在git標簽手冊的作者的腦海中。它們是部分正確的,因為移動標簽實際上只是分支頭,因此可以簡單地標簽並不是故事的一部分。如果你真的想要一個移動的標簽,你可以通過跳過幾個燃燒的箍並按照Re中的指令跳過匕首坑來實現這一點。 -gag git tag手冊頁的git tag 部分

如果我正確理解您的問題,您需要創建一個您的提交所在的分支。 為此,請查看要推送的版本。 在你的git bash中輸入:

git branch old-version

這應該在您的提交位置創建一個名為old-version的分支。 然后嘗試推。

您應該在標記的位置創建一個新分支,刪除標記,進行提交,重新創建標記並推送。

暫無
暫無

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

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