2009-05-11 28 views
-2

我的應用程序需要符合新的規範。如何在Git中執行類似於svn的標記?

所以我想標記我的應用程序的一個版本。 我希望能夠在將來查看此版本。

我承諾所有我最新的變化。

而且我做的:

git tag -a stable-pre-new-spec 

當我執行:

git show stable-pre-new-spec 

它顯示我上次來製作diff犯?!我不完全明白 是怎麼回事。

我應該創建一個分支嗎?

+0

我在這裏看不到問題。 'stable-pre-new-spec'是給定提交的符號名稱。 「git show 」將顯示標籤的內容(如果它是帶註釋的標籤),並在其下方顯示「git show ^{commit}」,其中包含您標記的提交的變更集。 – 2009-05-11 09:49:25

+0

我不想標記我的提交。我希望源樹的當前快照(即每個工件)都用一個字符串「標記」。 – 2009-05-11 10:17:28

+1

標記指向給定提交處的源代碼樹。這是你的快照。你可以很容易地使用「git checkout [-b ] 」來回到版本並進一步編輯它。在git中沒有「標記每個工件」,因爲它沒有任何意義:您總是處理完整的存儲庫,而不是單個文件。 – Bombe 2009-05-11 10:40:47

回答

0

我會在你的情況下使用了一個分支:

git checkout -b app_in_current_state 

然後您就可以繼續在主開發,同時在分支的當前狀態bugfixing。

2

有兩件事情正在進行。首先,git修訂版是整個文件樹的修訂版本。相比之下,我相信cvs和svn會爲單個文件分別提供修訂版本號。因此,在cvs或svn中,「tag」操作會熄滅並附加到例如「stable-pre-new-spec」到file1版本1.0.3,文件2版本1.0.2,文件3版本2.0,文件4版本1.3。 7等等。然後,當您想使用該標籤進行抓取時,系統會找到所有帶有該標籤的部分。在git中,一個版本已經是關於整個集合的,標籤只是給了它另一個名字。

Second--,這適用於許多釐米系統,包括CVS和svn--混帳給出了相同的名稱爲狀態差異。 Git把這個​​組合的東西稱爲提交。所以你問了這個版本,它顯示了它和前一個狀態之間的區別。在git中,提交ID實際上是整個保存的樹內容的校驗和;這只是傳統的向你展示golden spike

在git中,您可以在創建它之後的任何時候標記提交或創建一個分支。

相關問題