[git] 制作鏡像倉庫(含提交歷史)

背景

有時候我們需要在開源代碼的基礎上做一些修改抽高,
但這些特定的修改又不需要合并到開源代碼中。
這時候將代碼克隆到本地就是一個比較常見的做法了透绩。

一個辦法是翘骂,在本地建一個倉庫,將代碼克隆下來帚豪,然后提交到本地倉庫碳竟,
這樣并不能保留開源代碼的歷史提交記錄。
另一個辦法是狸臣,采用鏡像克隆的方式來做莹桅,本文就記錄一下做法。

鏡像克隆

我們拿 cnpmjs.org 舉例

(1)在 github 上建立私有庫


倉庫地址為:https://github.com/thzt/cnpmjs.org

(2)從原地址克隆一份裸版本庫

$ git clone --bare https://github.com/cnpm/cnpmjs.org.git

值得注意的有兩點:
其一固棚,這里加上了 --bare 參數(shù)
其二统翩,跟普通克孪裳痢(./cnpmjs.org)不同的是,裸克隆會默認克隆到 ./cnpmjs.org.git 文件夾中厂汗。

(3)以鏡像推送的方式上傳代碼

$ git push --mirror --force https://github.com/thzt/cnpmjs.org.git

記得 push 的遠程地址為 https://github.com/thzt/cnpmjs.org.git

日志如下委粉,這個操作會把所有 branch 和 tag 也都推送過去。

Enumerating objects: 10410, done.
Counting objects: 100% (10410/10410), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3687/3687), done.
Writing objects: 100% (10410/10410), 2.81 MiB | 333.00 KiB/s, done.
Total 10410 (delta 6308), reused 10410 (delta 6308)
remote: Resolving deltas: 100% (6308/6308), done.
To https://github.com/thzt/cnpmjs.org.git
 * [new branch]      1.x -> 1.x
...
 * [new branch]      sync-check-after-10mins -> sync-check-after-10mins
 * [new tag]         0.1.0 -> 0.1.0
 ...
 * [new tag]         3.0.0-rc.45 -> 3.0.0-rc.45

(4)結果如下

克隆到 gerrit

以上方式除了可以將代碼鏡像克隆到 gihub 之外娶桦,也可以克隆到 gerrit贾节。
不過,gerrit 中還需要增加一些額外的配置衷畦。

(1)在 gerrit 中新建倉庫

右上角點擊 “CREATE NEW” 新建倉庫(只有管理員才能看到這個按鈕)


填寫倉庫名 cnpmjs.org栗涂,其他字段保持默認值不變


(2)給 gerrit 倉庫配置額外的權限

  • Forge Author Identity
  • Push(Allow pushing with or without force)

(3)裸克隆后,以鏡像方式上傳代碼到 gerrit

$ git clone --bare https://github.com/cnpm/cnpmjs.org.git
$ git push --mirror --force $GerritRepoPrefix/cnpmjs.org

其中 $GerritRepoPrefix 是 gerrit 地址前綴祈争,每個公司的 gerrit 私有部署地址是不同的斤程。

日志如下,

Enumerating objects: 31, done.
Counting objects: 100% (31/31), done.
Delta compression using up to 8 threads
Compressing objects: 100% (9/9), done.
Writing objects: 100% (18/18), 3.15 KiB | 3.15 MiB/s, done.
Total 18 (delta 12), reused 12 (delta 8)
remote: Resolving deltas: 100% (12/12)
remote: error: branch refs/meta/config:
remote: Cannot delete project configuration from 'refs/meta/config'
remote: User: ...
remote: Contact an administrator to fix the permissions
remote: Processing changes: refs: 2, done
remote: commit 819a499: warning: subject >50 characters; use shorter first paragraph
To .../cnpmjs.org
 + 759d9dc...99b81f5 master -> master (forced update)
 ! [remote rejected] refs/meta/config (cannot delete project configuration)
error: failed to push some refs to '.../cnpmjs.org'

發(fā)現(xiàn) master 推送成功了菩混,但是 refs/meta/config 沒有推送成功忿墅。
這是沒問題的,是因為 refs/meta/config 是 gerrit 特有的 ref沮峡,是不能刪除的疚脐。
(因為是將原倉庫直接覆蓋過去,gerrit 倉庫中已有的所有 refs/* 都要刪掉再重建)

所以這里應該是 “期望中的正確行為”(It's expected result)邢疙,還可以參考這里棍弄。

(4)上傳成功

(截圖略)

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市疟游,隨后出現(xiàn)的幾起案子呼畸,更是在濱河造成了極大的恐慌,老刑警劉巖乡摹,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件役耕,死亡現(xiàn)場離奇詭異采转,居然都是意外死亡聪廉,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門故慈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來板熊,“玉大人,你說我怎么就攤上這事察绷「汕” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵拆撼,是天一觀的道長容劳。 經常有香客問我喘沿,道長,這世上最難降的妖魔是什么竭贩? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任蚜印,我火速辦了婚禮,結果婚禮上留量,老公的妹妹穿的比我還像新娘窄赋。我一直安慰自己,他們只是感情好楼熄,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布忆绰。 她就那樣靜靜地躺著,像睡著了一般可岂。 火紅的嫁衣襯著肌膚如雪错敢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天缕粹,我揣著相機與錄音伐债,去河邊找鬼。 笑死致开,一個胖子當著我的面吹牛峰锁,可吹牛的內容都是我干的。 我是一名探鬼主播双戳,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼虹蒋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了飒货?” 一聲冷哼從身側響起魄衅,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎塘辅,沒想到半個月后晃虫,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡扣墩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年哲银,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呻惕。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡荆责,死狀恐怖,靈堂內的尸體忽然破棺而出亚脆,到底是詐尸還是另有隱情做院,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站键耕,受9級特大地震影響寺滚,放射性物質發(fā)生泄漏。R本人自食惡果不足惜屈雄,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一玛迄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧棚亩,春花似錦蓖议、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至瘸彤,卻和暖如春修然,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背质况。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工愕宋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人结榄。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓中贝,卻偏偏與公主長得像,于是被迫代替她去往敵國和親臼朗。 傳聞我的和親對象是個殘疾皇子邻寿,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內容