[英]How to create a Git tag only for a specific branch?
可能是一個非常基本的問題。 但即使閱讀了多個資源,我也無法確定。
在SVN,我用來創建一個從分支稱為dev_branch稱為dev_tag標簽。 我還要求將dev_tag簽出到checkout_dir並進行maven構建。
SVN - 這就是我之前所做的
~ -> svn copy -m svn+ssh://<repo>/branches/dev_branch/ svn+ssh://<repo>/tags/dev_tag/
~ -> svn co svn+ssh://<repo>/tags/dev_tag/ checkout_dir
~ -> cd checkout_dir
~/checkour_dir -> mvn clean package
GIT - 怎么樣?
如何在Git中執行上述操作? 這就是我的git現在的樣子。
~ -> git branch -l
dev_branch
* master
重新措辭:同意,只是創建一個標簽。 我的問題更多的是
“假設,如果我讓git repo包含主分支(用於prod部署)和dev分支(用於QA部署),每個都有不同的更改。接下來,我通過鍵入'git tag mytag'並使用當前分支作為master來創建標記。現在到QA,我需要提供命令,這些命令只會檢查他們可以在mvn上構建的開發分支內容。使用相同的標記,我應該能夠檢查可以構建並用於prod部署的主分支內容“。
最后,這就是我為特定分支創建Git標記和為同一個tar創建的標記,這有助於我分別構建qa和prod代碼。
QA_BUILD
git clone -b dev_branch gitserve:repo.git qa
cd qa
tag -a qa_tag
git commit -a
git push --tags
git archive --format=tar --remote=gitserve:repo.git tags/qa_tag > /tmp/qabuild/qa.tar
cd /tmp/qabuild
tar -xvf qa.tar
mvn clean package
PROD_BUILD
git clone -b master gitserve:repo.git prod
cd prod
tag -a prod_tag
git commit -a
git push --tags
git archive --format=tar --remote=gitserve:repo.git tags/prod_tag > /tmp/prodbuild/prod.tar
cd /tmp/prodbuild
tar -xvf prod.tar
mvn clean package
git
中的標簽與svn
標簽不同。 它們本質上等同於固定分支(即一旦創建它們就不會隨着進一步的提交而移動) - 只是指向簡單提交的指針。 因此,要創建標記,您可以執行以下兩種操作之一 - 如果您已經簽署了要標記的提交,則可以將標記放在以下位置:
git tag <tagname>
如果您不在標記的提交中,則需要使用git log
或其他方法來查找所需提交的SHA哈希,然后您可以運行:
git tag <tagname> <sha>
(或者你可以git checkout <sha>; git tag <tagname>
,但這是一個不必要的結賬,如果你忘記重新結賬到你想要進行未來開發工作的地方,可能會引起混淆。
你不能。
tag
是指向<commit-id>
。 標簽獨立於分支存在。
這是可能的標記最新發布latest
(等),然后刪除,並在每次有一個釋放時間重新創建。
然而,這不是標簽使用的常規方式,這是固定的位置,但只要所有團隊都了解哪些標簽是固定的,以及哪些標簽漂浮在你周圍應該沒問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.