2013-04-10 183 views
2

我在很多不同的項目中工作,並希望從多臺計算機使用git-tfs而無需額外的裸存儲庫。沒有裸存儲庫的Git tfs

我的想法是將git-tfs存儲庫存儲在一個共享中,並且全部推入工作分支。將更改合併到主服務器並推送到tfs。

我希望我可以做這樣的事情:

克隆從TFS,並創建一個「工作」分支

cd centralrepository 
git tfs quick-clone --shared http://tfs.. $/tfsfolder . 
git branch work 

在客戶端的克隆工作的分支

git clone --branch work --single-branch path/to/centralrepository 

做在客戶端工作,承諾並推向中心

... 
git commit -m"my work" 
git push 

在中央再次,從TFS獲取更新,適用於「工作」的變化,現在推回

git tfs pull 
git rebase master work 
git checkout master  // rebase checks out the work branch 
git merge work 
git tfs checkintool 

回客戶端,拉動和繼續工作

git pull 
... 
git push 

但是,這並不工作,這是對於有經驗的git用戶可能很明顯

會發生什麼情況是中央客戶端和客戶端之間的更改會合並導致衝突,因爲rebase將應用更改兩次。

是整個想法有缺陷還是我只是錯過了一些步驟。

回答

1

當想通過場景多一點時,我發現了錯誤。

work分支當然不應該在中央存儲庫中重新分配。 work應與master合併,然後快速轉發。

它應該是這樣的:

git tfs pull 
git merge work 
git checkout work 
git merge -ff-only master 
git checkout master 
git tfs checkintool