Note: To clone special branch for Git operation

起因是最近有個新案子在跑 用的是Yocto/OE 的Build environments 他有一個設計就是針對某的vendors 的BSP 可以將patch 透過寫script 方式在Buildtime時一個一個打上去, 也可以自己透過SCM tools 去拉特定的 revision,一般的建議是用patch 一個一個打,可是我覺的這樣很蠢呀! 尤其是kernel 明明廠商就是有git repo. 可以拉了,當然因為你沒辦法推回去 但是只要自己clone一份就好。

但是事情沒有我這個笨人想的那樣簡單,因為目前是多方合作的案子,所以由客戶方在Bitbucket 上開了一個 team group 共同協作,當我好不容易把kernel repo 搬到bitbucket 上時,竟然發現Bitbucket 出現該repo. 超過2GB 所以只能讀不能寫的訊息,按照線上說明去做了一些步驟如透過BFG去過濾大於某一個大小的檔案等方法,但是都一無所獲。不由得想到前幾天看到的一個方法

  1. git init #initialized a empty repository
  2. git remote add -t <branch> <name> <url>     # track a special branch
    or git remote add -m <brancn> <name> <url> # track a special branch to master
  3. git checkout

經過測試後該 repo 果然可以有效降為只剩下 1GB 大小 雖然 Bitbucket 還是會警告 但是最少還是可以 commit 到 2GB 的狀況, 我個人是覺的應該不會出現被我commit到出現 repository 增長到 2GB 的慘事才是

update: 剛不知道為啥 又不成功 但是在 git官網看到 doc 有寫 下面這段

Imitate git clone but track only selected branches

$ mkdir project.git
$ cd project.git
$ git init
$ git remote add -f -t master -m master origin git://example.com/git.git/
$ git merge origin

					
廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: