2016-07-23 70 views
1

我們正在將我們的SCM更改爲BitBucket。目前,我們使用Clearcase SCM,並且我們在不同的階段/流中有代碼 - Dev,UAT和生產,其中dev有開發人員正在開發的代碼,UAT已完成正在由BP測試的更改,Production有已部署到生產中的代碼。BitBucket - 直接添加開發分支而不是主版本

在BitBucket中,我們的管理員定義了3個分支:develop,test和master。

對於我們的應用程序之一,在CC中,我們在每個狀態中都有代碼,所以我試圖從dev流中添加代碼以在BitBucket中開發分支。

我正在使用全新創建的回購協議。回購庫中的所有分支都有一個README.TXT文件。

我使用的命令是

# 1. create a Project & Repo in Bitbucket named __apprepo_ 
# 2. create a Snapshot view on your workstation from Clearcase for the application that you want to migrate 
# 3. at the DOS command line, change directory to the root of your snapshot view 
# 4. type ‘git init’ 
# 5. type ‘git add --all’ 
# 6. type ‘git commit –m 「Initial Commit」 ‘ 
# 7. type ‘git remote add origin ssh://ourBBserver.com:7999/EN/apprepo 
# 8. type ‘remote –v’ 
# 9. type ‘git pull origin develop’ 
# 10. type ‘git push –u origin develop’ 

當我運行#9,我收到以下錯誤:

error 22-Jul-2016 20:45:10 warning: no common commits 
error 22-Jul-2016 20:45:10 From ssh://ourBBserver.com:7999/EN/apprepo 
error 22-Jul-2016 20:45:10  * branch   develop -> FETCH_HEAD 
error 22-Jul-2016 20:45:10  * [new branch]  develop -> origin/develop 
error 22-Jul-2016 20:45:10 error: src refspec develop does not match any. 
error 22-Jul-2016 20:45:10 error: failed to push some refs to 'ssh://ourBBserver.com:7999/EN/apprepo.git' 

但對#9,#10,如果我改變developmaster , 有用。

我該怎麼做直接將代碼移動到develop分支?與test分支相同

回答

0

您不需要切換到ClearCase視圖並在那裏初始化您的倉庫。

保持您的本地Git倉庫獨立,準備推送到其遠程倉庫。

要從ClearCase中添加相干態每一次,留在你的git回購和類型:

git --work-tree=/path/to/ClearCase/view/aVob add . 
git commit -m "Add state from CC view" 
git push 

然後CC視圖的配置規格改變它的下一個基準線(或完整的標籤),以表示下一個連貫狀態(因爲ClearCase是基於文件的,並且沒有UCM基線旁邊的提交概念)。
然後再將同一視圖的新內容添加到同一本地Git倉庫(同一分支)。再推一次。


我的基本問題是 - 如果我設置我想要添加到develop分支,而不是master分支的文件,我做了一個「git的初始化」 - >「git的添加--all」 - >'git commit -m'Initial Commit'' - >'git remote add origin ssh://ourBBserver.com:7999/EN/apprepo',

第一:不要git init。如果你有一個主分支,這意味着你已經已經初始化其他地方的回購。

去那個回購,創建一個開發分支,並添加內容相匹配的爲CC的CC視圖集開發分支

cd /path/to/my/repo 
git checkout -b develop 
git --work-tree=/path/to/ClearCase/view/aVob add . 
git commit -m "add content of CC develop branch (no history though)" 
git push -u origin develop 
+0

謝謝,@VonC。你能多解釋一下嗎?我想將每個CC狀態的整組文件添加到BitBucket中的相應分支。我們的clearcase設置的方式是針對不同的狀態,因此有不同的流 - 所以我計劃填充BitBucket,使CC_dev流 - >開發分支,CC _uat流 - >測試分支和CC _prod流 - >主控科。所有不同的分支都有不同的文件,因爲文件可以從產品添加到設備。 – adbdkb

+0

@adbdkb對於每個CC分支,您需要從最舊的基線重新組合到最新的基準,併爲每個分支添加其內容到Git回購。 '--work-tree'選項允許git repo臨時考慮另一個路徑(如更新後的CC視圖之一)作爲其工作樹,以在其HEAD和CC工作樹之間添加/修改/遠程增量。 – VonC

+0

但是我怎樣才能直接添加開發分支使用'git pull origin develop'或者這是不可能的? – adbdkb

相關問題