遷移背景
公司需要將git 服務器上的項目進行備份,因爲項目文件很大無法使用 http 的方式進行備份(提交字節有長度限制),只能使用SSH的方式
思考: 在那些特徵下使用 SSH
1、大型項目(1g…ng) 將代碼上傳到Git 服務器
2、使用SNV管理的大型項目代碼上傳至Git 服務器上
3、Git 項目備份,將一個git 服務器中的項目 備份到另外一個 git 服務項目中
1、廢話少說,你有 SSH祕鑰嗎?
查看字節是否有SSH祕鑰:
c盤→ Users → Administrator ( 你計算機的登錄用戶名 ) → .ssh → id_rsa.pub ( 打開 id_rsa.pub 文件,裏面的內容就是你的SSH祕鑰 )
2、生成 SSH 祕鑰( 需要先在電腦上安裝 Git )
1、先來段完整操作步驟註解
$ ssh-keygen // 輸入ssh-keygen 後回車 Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/QY/.ssh/id_rsa): id_rsa // 這句話是讓你輸入文件名,輸入完>成後按回車,我這裏輸入 id_rsa ,其中 c/Users/QY/.ssh/ 這個路徑就是保存 你接下來生成祕鑰的地方了 Enter passphrase (empty for no passphrase): // 這裏輸入密碼 Enter same passphrase again: // 這裏輸入確認密碼,和上面的輸入的密碼保持一致 Your identification has been saved in id_rsa. // 這句話說的是身份證已保存在id_rsa 文件中 Your public key has been saved in id_rsa.pub. // 這句話說的是公鑰已保存在id_rsa.pub文件中 The key fingerprint is: SHA256:tpNY3xLtFm****************IccOzFUzM QY@D*****-******Q // 這是你的鑰匙指紋
2、操作步驟想看下圖
3、登陸到GitLab賬戶後操作如下圖
登陸後點擊 “個人頭像”→ “Settings”選項→“SSH Keys”
找到生成的id_rsa.pub 文件,將文件中的內容複製
將複製的文本粘貼到Key文本框內,最後點擊 Add Key按鈕完成操作點擊 Add Key按鈕後將看到如下信息
4、使用SSH將已有項目遷移到gitlab中 (大文件導入講會很慢,需要耐心等待)
1.進入項目文件夾,在空白區域單擊鼠標右鍵找到Git Bash Here 選項後單擊打開 git 命令窗口,首先輸入命令
git config --global core.autocrlf false
這是因爲LF是UNIX/Linux下換行符,CRLF是DOS/Windows下換行符。Git提供了一個“換行符自動轉換”功能,這個功能默認處於自動模式,通過該命令我們將其關閉
git config --global core.autocrlf false
2.在打開的Git 命令窗口輸入命令
git init
把這個目錄變成git可以管理的倉庫(請確保你的這個根目錄裏面沒有 .git 文件夾,這個.git 文件夾一般是隱藏目錄,如何查看隱藏目錄這裏就不在贅述
)git init
3.把文件添加到版本庫中,使用命令
git add .
添加到暫存區裏面去,小數點".",意爲添加文件夾下的所有文件執行這個命令會比較慢,命令需要將所有文件添加到暫存區,請耐心等待
git add .
4.使用命令
git commit
告訴Git,把文件提交到倉庫。引號內爲提交說明執行這個命令會比較慢,命令需要將所有文件提交到暫存區,請耐心等待
git commit -m ‘描述信息:備份項目’
5.使用命令
git remote rm origin
刪除原先的遠程庫地址,第一次創建的本地項目則不需要此命令git remote rm origin
6.使用命令
git remote add origin
庫地址,關聯到遠程庫項目較大時應該使用 SSH 地址而不是使用 http 地址 ,執行這個命令會比較慢,請耐心等待
例如:遠程地址爲:ssh://[email protected]:10022/xxx/xxx.gitgit remote add origin ssh://git@gt.xxx.com:10022/xxx/xxx.git
7.使用命令
git pull --rebase origin master
獲取遠程庫與本地庫同步合併如果遠程庫不爲空必須做這一步,否則後面的提交會失敗,執行這個命令會比較慢,請耐心等待
git pull --rebase origin master
8.使用命令
git push -u origin master
把本地庫的內容推送到遠程,實際上是把當前分支master推送到遠程。執行這個命令會比較慢,請耐心等待
執行此命令後會要求輸入用戶名、密碼,驗證通過後即開始上傳如果想要將所有的分支都提交,則使用命令: git push --all origin
git push -u origin master
至此遷移結束
備忘錄:常用Git 命令
克隆項目
git clone 項目地址
拉取項目
git pull
查看狀態
git status
添加暫存文件:點( . ) 表示所有文件或具體文件名
git add .
git add menutest.text
添加提交描述信息
git commit -m ‘描述信息’
推送暫存文件
git push
刪除單個文件
git rm 文件名稱
如果是刪除當前文件夾下所有文件, cd 到你要刪除的目錄下或者 * 可用“”文件夾名“”代替) -r 代表 recursively(遞歸)
git rm * -r
查看所有分支(當前分支以‘*’標記)
git branch
創建分支(如:git branch dev)
git branch
切換分支
git checkout
創建切換分支(如:git checkout -b dev)
git checkout -b
合併分支到當前分支上
git merge
刪除該分支
git branch -d