不再擔(dān)心代碼丟失!掌握同步代碼到兩個(gè)git倉(cāng)庫(kù)的絕妙方法!

最近,我手里的項(xiàng)目由于某些原因,需要從一個(gè)代碼倉(cāng)庫(kù)把所有的代碼復(fù)制到另一個(gè)代碼倉(cāng)庫(kù)中,并且以后再同步代碼的時(shí)候,需要同時(shí)把本地的代碼同步到兩個(gè)代碼倉(cāng)庫(kù)。為了滿足這一需求,我將為大家介紹兩種方案。方案一可以實(shí)現(xiàn)代碼的提交同步,但只能同步倉(cāng)庫(kù)的某一個(gè)分支,無(wú)法同步所有的分支和版本。而方案二則更為完美,可以同步所有的分支和版本。接下來(lái),我將逐步為大家介紹這兩種方案。
方案一:簡(jiǎn)單快速的同步方法
首先,在命令行界面執(zhí)行以下命令,查看當(dāng)前代碼倉(cāng)庫(kù)的遠(yuǎn)程地址:
git remote -v
通過(guò)以上命令,我們可以看到當(dāng)前只有一個(gè)遠(yuǎn)程地址。
接下來(lái),通過(guò)以下命令在origin中新增一個(gè)遠(yuǎn)程地址,以實(shí)現(xiàn)將代碼同時(shí)提交到兩個(gè)倉(cāng)庫(kù):
git remote set-url --add origin https://github.com/EXAMPLE-USER/OLD-REPOSITORY.git
通過(guò)以上命令,我們?cè)趏rigin中添加了一個(gè)新的遠(yuǎn)程地址。
再次通過(guò)以下查詢命令,查看origin關(guān)聯(lián)的兩個(gè)倉(cāng)庫(kù)地址:
git remote -v
通過(guò)以上命令,我們可以確認(rèn)origin關(guān)聯(lián)了兩個(gè)倉(cāng)庫(kù)地址,一個(gè)是原倉(cāng)庫(kù)地址,另一個(gè)是目標(biāo)倉(cāng)庫(kù)地址。
最后,當(dāng)我們本地要提交代碼時(shí),只需使用以下命令即可將代碼同步到兩個(gè)Git倉(cāng)庫(kù):
git push origin
通過(guò)以上步驟,我們成功實(shí)現(xiàn)了將代碼同時(shí)提交到兩個(gè)代碼倉(cāng)庫(kù)的目標(biāo)。
然而,方案一只能同步倉(cāng)庫(kù)的某一個(gè)分支,無(wú)法同步所有分支和版本。如果你的項(xiàng)目需要同步所有分支和版本,那么我們可以采用方案二。
方案二:全面同步的方法
首先,在桌面或其他位置打開一個(gè)命令行工具,執(zhí)行以下命令,創(chuàng)建倉(cāng)庫(kù)的裸克?。?/p>
git clone --bare https://github.com/EXAMPLE-USER/OLD-REPOSITORY.git
通過(guò)以上命令,我們創(chuàng)建了一個(gè)裸克隆的倉(cāng)庫(kù)。
然后,進(jìn)入克隆下來(lái)的裸倉(cāng)庫(kù)目錄:
cd OLD-REPOSITORY.git
接下來(lái),執(zhí)行以下命令,將裸倉(cāng)庫(kù)的鏡像(包括分支和標(biāo)簽)直接推送到新的倉(cāng)庫(kù)地址:
git push --mirror https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
通過(guò)以上命令,我們將裸倉(cāng)庫(kù)的鏡像推送到了新的倉(cāng)庫(kù)地址。
最后,按照方案一的操作,在每次代碼提交時(shí)使用以下命令,即可將代碼同步到兩個(gè)Git倉(cāng)庫(kù):
git push origin
通過(guò)以上步驟,我們成功實(shí)現(xiàn)了將所有分支和版本的代碼同步到兩個(gè)代碼倉(cāng)庫(kù)的目標(biāo)。
注意事項(xiàng)
需要注意的是,在使用任一方案時(shí),你需要在新的Git倉(cāng)庫(kù)地址上創(chuàng)建一個(gè)與原倉(cāng)庫(kù)相同的項(xiàng)目,以確保代碼能夠成功同步。
END
通過(guò)以上兩種方案,我們可以實(shí)現(xiàn)將代碼同時(shí)提交到兩個(gè)Git倉(cāng)庫(kù)的需求。方案一適用于只需同步一個(gè)特定分支的情況,而方案二則適用于需要同步所有分支和版本的情況。根據(jù)你的具體需求,選擇適合的方案來(lái)實(shí)現(xiàn)代碼同步。希望本文對(duì)你有所幫助,如果有任何問(wèn)題,請(qǐng)?jiān)谙路搅粞?,我?huì)盡快回復(fù)。感謝閱讀!
如有疑問(wèn)或者更多的技術(shù)分享,歡迎關(guān)注我的微信公眾號(hào)“知其然亦知其所以然”!
