簡體   English   中英

Bower分別對待git branch和git標簽(輕量級和帶注釋)

[英]bower treats git branch and git tag (both lightweight and annotated) distinctly

我們有一個web應用程序,其中包括我們的亭子包“A”。

“ A”是分支機構masterdevelop的git repo。 例如我們的網絡應用程序的bower.json看起來像這樣:

...

devDependencies: {
...

'A': 'http(s)://gitserver:port/A.git#R1.0'
...
}

目標:

我們的目標是允許webapp始終指向相同的標簽/分支

方法:

我們可以在此處采用兩種方法:

  • 使用標簽(輕量或帶注釋)

在Bower程序包A我們在develop分支和發行master版本上進行大多數合並工作。 准備發布時,我們在master分支上創建指向master HEAD SHA-commit的標記R1.0

如果有任何“修補程序”,我們會將提交推送到master。 從本地和遠程刪除標簽R1.0 ,並創建指向主master的新HEAD的標簽R1.0

當網絡進行bower update我們希望它可以獲取Bower軟件包“ A”的最新版本

  • 使用分支

master HEAD切出一個release分支作為R1.0 在任何“修補程序”上,將它們升級為master ,然后使用master R1.0進行基礎調整

R1.0分支始終包含“可發布”代碼。 在這種方法中, master分支幾乎就像一個“虛擬”分支

問題

我們觀察到

bower cache clean && bower update

如果我們使用分支方法,則僅適用(刷新) bower_components目錄。 即,當我們使用方法1中所述的標簽(嘗試過輕量級和帶注釋的標簽)時, bower_components不會刷新。

很抱歉這么冗長。 有人可以闡明這一點嗎?

謝謝!

盡管您可以隨意創建和刪除標簽,但我認為它們並不是真的設計為可以像這樣移動。 這種設計的第一個提示是您不能直接移動標簽,而必須刪除並重新創建它。

當您移動已經推送的標簽時,其他獲取更改的人將不會獲得該更新的標簽。 當出現這種情況時,您應該使用

git fetch origin --tags

它將更新被強制按下的標簽。 當您在控制台中看到日志時,您將知道標記已被正確替換。

- [tag update]      v0.1       -> v0.1

暫無
暫無

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

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