git進階學習

????最近在公司被git搞到頭大,網(wǎng)上的教程都是速成的缅帘,只能入門,達不到實際開發(fā)需求难衰。比如現(xiàn)在的項目的代碼庫達到了幾百個GB钦无,從03年到現(xiàn)在不知道更迭了多少次,一個工程下面又分了幾十個repo盖袭,這些都需要被git管理失暂。在github上自己建一個repo自己玩是很難掌握git的實用開發(fā)技巧的彼宠。今天在這里開一個專欄,專門記錄開發(fā)過程中遇到的有關代碼管理難題弟塞,過于基礎的技巧不會在這里出現(xiàn)凭峡。

管理工程中的多個代碼庫

????實際開發(fā)中往往在一個工程中包含多個不同的領域,例如有的人維護內(nèi)核代碼决记,有的人編寫驅(qū)動摧冀,有的人維護uboot,等等等系宫。所以可以將這些獨立的工作用不同的倉庫管理索昂,開發(fā)人員只需要關注自己的領域的倉庫就可以了,但是整個項目建一堆倉庫又難以管理扩借,因此git可以創(chuàng)建一個manifests來統(tǒng)一管理所有子倉庫楼镐。

????以android12工程為例,android下面的.repo子目錄用來統(tǒng)一管理所有子倉庫往枷,

cd .repo/manifests/

ls -a

????可以看到框产,manifests也是一個倉庫,當前在imx_android-12.0.0_1.0.0的loacl brach上错洁,它track的是遠程branch是origin/imx_android-12.0.0_1.0.0秉宿,

vim default.xml,這個文件描述了所有子倉庫track的遠程branch


repo sync失敗原因分析

? ? 1屯碴、例如uboot-imx倉庫描睦,該倉庫管理著uboot有關的代碼,本地track的遠程branch就是refs/tags/android-12.0.0_1.0.0导而,repo sync命令做的事情就是對所有的本地branch做一次rebase忱叭,但是只能rebase到default.xml中描述的遠程分支上,如果用戶在自己的本地倉庫創(chuàng)建了local branch今艺,并且該local branch所track的remote branch與default.xml中的描述不一致韵丑,repo sync就會報錯,因為我們無法將local branch rebase到其他分支上虚缎,勢必會引發(fā)conflict撵彻。在repo sync之前應該git branch -D所有無關local branch。

? ? 2实牡、如果我們沒有在本地創(chuàng)建過其他branch陌僵,在本地的修改也會引發(fā)repo sync失敗,因為本地存在未commit的修改是無法rebase的创坞,最好的辦法是保存好本地的修改之后checkout local branch碗短。

? ? 3、有時候我們明明沒有動過某個repo题涨,但是repo sync依然報告這個repo無法sync偎谁,筆者目前還搞不懂為什么會這樣奔坟,盲猜是default.xml文件的問題。對于這種問題需要刪除一些.repo下的文件

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末搭盾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子婉支,更是在濱河造成了極大的恐慌鸯隅,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件向挖,死亡現(xiàn)場離奇詭異蝌以,居然都是意外死亡,警方通過查閱死者的電腦和手機何之,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門跟畅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人溶推,你說我怎么就攤上這事徊件。” “怎么了蒜危?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵虱痕,是天一觀的道長。 經(jīng)常有香客問我辐赞,道長部翘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任响委,我火速辦了婚禮新思,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赘风。我一直安慰自己夹囚,他們只是感情好,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布邀窃。 她就那樣靜靜地躺著崔兴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蛔翅。 梳的紋絲不亂的頭發(fā)上敲茄,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天,我揣著相機與錄音山析,去河邊找鬼堰燎。 笑死,一個胖子當著我的面吹牛笋轨,可吹牛的內(nèi)容都是我干的秆剪。 我是一名探鬼主播赊淑,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼仅讽!你這毒婦竟也來了陶缺?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤洁灵,失蹤者是張志新(化名)和其女友劉穎饱岸,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體徽千,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡苫费,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了双抽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片百框。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖牍汹,靈堂內(nèi)的尸體忽然破棺而出铐维,到底是詐尸還是另有隱情,我是刑警寧澤慎菲,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布方椎,位于F島的核電站,受9級特大地震影響钧嘶,放射性物質(zhì)發(fā)生泄漏棠众。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一有决、第九天 我趴在偏房一處隱蔽的房頂上張望闸拿。 院中可真熱鬧,春花似錦书幕、人聲如沸新荤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽苛骨。三九已至,卻和暖如春苟呐,著一層夾襖步出監(jiān)牢的瞬間痒芝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工牵素, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留严衬,地道東北人。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓笆呆,卻偏偏與公主長得像请琳,于是被迫代替她去往敵國和親粱挡。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1. GIT命令 git init在本地新建一個repo俄精,進入一個項目目錄询筏,執(zhí)行git init,會初始化一個re...
    江邊一蓑煙閱讀 799評論 0 0
  • repo常用相關命令 1竖慧、repo start <topic_name> 開啟一個新的主題嫌套,其實就是每個Proj...
    huangkh閱讀 4,274評論 0 0
  • 引用 感謝廖海峰老師的精彩文章文章出處https://www.liaoxuefeng.com/wiki/89604...
    學習ing蘭閱讀 221評論 0 0
  • 1. 起步 1.1 版本控制 Git本質(zhì)是一個分布式版本控制系統(tǒng)(Distributed Version Cont...
    kivinsae閱讀 1,777評論 1 9
  • 1.設置 初次使用需要設置姓名和郵箱git config --global user.name "git用戶名"g...
    jrg陳咪咪sunny閱讀 758評論 0 1