GitLab簡介
GitLab是類似於GitHub的倉庫管理系統,和GitHub一樣,它能夠提交/拉取代碼,不同的是,GitLab可以部署在自己服務器上,數據庫等信息是自己掌握的,適合團隊內部協作開發。可以理解爲個人版本的GitHub。
記錄一下Git拉取 和提交文件到GitLab的命令。
前提
-
下載安裝Git
-
在GitLab上有賬號
-
更改Git Bash的起始位置:右鍵屬性,改爲自定義文件夾workspace,作爲本地git倉庫
-
在GitLab上配置SSHKey。目的是使客戶端和服務端建立信任,每次操作就不需要再重複輸入密碼。
具體操作: 首先需要在電腦上生成SSHKey,使用命令:
ssh-keygen -t rsa -C "[email protected]"
(引號內填自己的郵箱)一路默認回車,最後就在.ssh目錄下得到了兩個文件:id_rsa(私有密鑰)和id_rsa.pub(公有密鑰),把id_rsa.pub的內容複製到GitLab的SSH key中。
上述命令和以下所有命令均在GIt Bash中執行。
拉取命令
git clone + 項目地址
(項目地址:在GitLab中打開項目後直接複製"Clone with SSH")git pull
由於已經關聯了地址,之後更新可以用git pull直接更新到最新。
提交命令
提交新項目(未初始化Git倉庫)
-
git init
使用cd命令進入到工程目錄下,即進入工作區,把倉庫變爲可管理的git倉庫,得到一個.git文件夾 -
git add .
將倉庫下的所有內容添加到暫存區,如果只是個別內容就把“.”改爲文件名 -
git commit -m "註釋內容"
將暫存區的內容提交到本地版本庫。(參數-m很重要) -
git remote add origin + 遠程倉庫的地址
(在GitLab上覆制項目地址)把本地倉庫和遠程倉庫關聯
如果出現 fatal:remote origin already exists
那麼輸入命令:git remote rm origin
然後再重複:git remote add origin + 遠程倉庫的地址
-
git push -u origin master
把當前分支master推送到遠程倉庫。參數-u的意思是,只要本地做了提交,以後就可以直接用git push
代替原命令進行推送
普通提交(已初始化Git倉庫)
git add .
添加到暫存區(特別是工作區有新文件的時候必須要先添加到暫存區)git commit -m "註釋內容"
會對修改的文件進行註釋,提交到版本庫git push
由於第一次關聯過地址,所以不用再執行上述第四步,直接推送到GitLab
提交到分支
-
fetch first
這個問題是說遠程倉庫的版本和本地倉庫不一致,要先fetch first,但是fetch比較麻煩,我選擇用git pull拉取最新版本merge到本地,命令如下:
git pull --rebase origin + 分支
-
non-fast-forward
錯誤原因:文件衝突。遠程倉庫和本地倉庫文件數量不一致(遠程倉庫有的文件在本地倉庫中沒有,或者不是在遠程倉庫文件基礎上修改的。)這個時候就強制push就對了:
git push origin + 分支 -f