利用git克隆歷史版本(下載指定版本的代碼)
git克隆歷史版本(下載指定版本的代碼)
步驟一:首先git clone 當(dāng)前項(xiàng)目至文件夾
步驟二:cd 進(jìn)入clone下來的項(xiàng)目文件夾內(nèi)
步驟三:在git 倉(cāng)庫(kù)查看SHA,或輸入命令git log 查看提交的歷史commit

步驟四:復(fù)制需要回退版本到的commit后面序列,命令如下即可回退到指定版本
git checkout xxxxxxxxxxxxxxx
git版本克隆方法
克隆最新版本
git clone --depth=1 代碼庫(kù)的ssh
克隆歷史版本
1、git clone 代碼庫(kù)的ssh
2、cd 克隆的項(xiàng)目名
3、git log(查看歷史版本的commit)
4、git checkout 歷史版本的commit
遷移git倉(cāng)庫(kù)并帶有歷史提交記錄
遷移git倉(cāng)庫(kù)
開發(fā)在很多時(shí)候,會(huì)遇到一個(gè)問題。GIT倉(cāng)庫(kù)的管理,特別是倉(cāng)庫(kù)的遷移。我需要保留已有的歷史記錄,而不是重新開發(fā),重頭再來。
我們可以這樣做:
使用--mirror模式會(huì)把本地的分支都克隆。
// 先用--bare克隆裸倉(cāng)庫(kù) git clone git@gitee.com:xxx/testApp1.git --bare // 進(jìn)入testApp1.git,這樣就可以把所有分支都克隆到新倉(cāng)庫(kù)了 git push --mirror git@gitee.com:xxx/testApp2.git
我們還可以這樣做:
git remote add gitlab git@gitee.com:xxx/testApp2.git git push gitlab git checkout dev git push gitlab ...
這樣的方法是,把testApp2作為新增的遠(yuǎn)程倉(cāng)庫(kù),然后使用push一次推送一個(gè)分支。這種方式的好處是:遷移的git倉(cāng)庫(kù),只需遷移指定的分支。
遷移git倉(cāng)庫(kù)子目錄
上面的方法是整個(gè)倉(cāng)庫(kù)的遷移,但如果只想遷移git倉(cāng)庫(kù)的子目錄,則可以使用git subtree,比如想要把倉(cāng)庫(kù)目錄thirdparty\telnetd拆分出去作為一個(gè)新的庫(kù),并且還要帶上她所有的歷史提交記錄。
首先,我們同樣需要新建一個(gè)新的空倉(cāng)庫(kù)(注意:不要帶有任何初始化文件,包括README.md)。
然后,到主倉(cāng)庫(kù)執(zhí)行以下git命令,就可以看到telnetd倉(cāng)庫(kù)已有代碼了。
git subtree push --prefix=thirdparty/telnetd git@gitee.com:components/telnetd.git master
這樣,就完成子目錄的遷移啦,就是有個(gè)問題,好慢~
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Jenkins集成Gitlab實(shí)現(xiàn)自動(dòng)化部署的全過程記錄
因?yàn)橹行凸静豢赡芘渲眠\(yùn)維開發(fā),而開發(fā)只管開發(fā)的,所以運(yùn)維只能是通過使用開源工具的方式來搭建自動(dòng)化部署系統(tǒng),下面這篇文章主要給大家介紹了關(guān)于Jenkins集成Gitlab實(shí)現(xiàn)自動(dòng)化部署的相關(guān)資料,需要的朋友可以參考下2022-04-04
基于rsync寫腳本實(shí)現(xiàn)多節(jié)點(diǎn)多服務(wù)器文件一鍵同步的方法
這篇文章主要介紹了利用rsync寫腳本實(shí)現(xiàn)多節(jié)點(diǎn)多服務(wù)器文件一鍵同步,本文將介紹?scp?和?rsync?兩個(gè)命令及基本語(yǔ)法介紹,需要的朋友可以參考下2022-01-01
git如何還原到某次commit并強(qiáng)制推送遠(yuǎn)程
這篇文章主要介紹了git如何還原到某次commit并強(qiáng)制推送遠(yuǎn)程的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
git與svn的區(qū)別及優(yōu)缺點(diǎn)說明
Git和SVN都是版本控制系統(tǒng),用于代碼管理,SVN是集中式的,需要聯(lián)網(wǎng)并且中央服務(wù)器存在單點(diǎn)故障的風(fēng)險(xiǎn),Git是分布式的,每個(gè)終端都是一個(gè)完整的倉(cāng)庫(kù),不依賴中央服務(wù)器,提高了工作的靈活性和安全性,SVN易于管理權(quán)限,但必須聯(lián)網(wǎng)工作且更新提交可能面臨沖突2024-10-10
解決MAC系統(tǒng)升級(jí)后虛擬機(jī)黑屏問題
相信大家都抱著嘗鮮的心理,更新了MacOS Catalina 。在更新之后,打開VMware Fusion使用中發(fā)現(xiàn),虛擬機(jī)處于黑屏狀態(tài),無(wú)法看到虛擬機(jī)的屏幕,在各種嘗試之后,找到一種正確的解決辦法2021-09-09
自定義?Github?Action?庫(kù)實(shí)戰(zhàn)詳解
這篇文章主要為大家介紹了自定義?Github?Action?庫(kù)實(shí)戰(zhàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09

