git-gitLab使用教程


gitLab

GitLab 是一個用於倉庫管理系統的開源項目,使用Git作為代碼管理工具,並在此基礎上搭建起來的web服務。下面是使用步驟

1. 注冊

進入注冊頁面(需要公司的人提供地址)例如: http://xx.xxx.xx.xx:18000/users/sign_in  注冊完成,將賬號給管理員,開通權限。

2. 安裝git客戶端(生成ssh key, 提交代碼什么的都需要它)

下載地址: https://www.git-scm.com/download/ 下載完成, 默認安裝即可

3. 生成 ssh key 

  3.1 隨便打開一個文件夾,右鍵 點擊 Git Bach Here (沒有安裝git客戶端是找不到的)

  

 

3.2 設置全局變量:例如注冊名是 abc;  郵箱是 youxiang@xx.com

git config --global user.name "abc" (加上雙引號,不加沒有試過)
git config --global user.email "youxiang@xx.com"

 

  3.3 生成ssh key 命令:

ssh-keygen -t rsa -C "youxiang@xx.com" (上面的郵箱地址)

成功的截圖:(找到C:\Users\登錄用戶名\.ssh 目錄,里面有兩個文件:id_rsa和id_rsa.pub)

4. 配置ssh, 登錄gitLab 見下面截

 

執行上面步驟之后,應該就可以拉取代碼了;

 

git相關

https://www.liaoxuefeng.com/wiki/896043488029600/900394246995648

一些概念:

工作區間: 即我們創建的工程文件, 在編輯器可直觀顯示;

緩存區: 只能通過git GUI或git shell 窗口顯示,提交代碼、解決沖突的中轉站;

本地倉庫: 只能在git shell 窗口顯示,連接本地代碼跟遠程代碼的樞紐,不能聯網時本地代碼可先提交至該處;

遠程倉庫: 即保存我們代碼的服務器,本文以公共版本控制系統:github為例,登錄github賬號后可直觀顯示;

 

 1. 代碼克隆-遠程庫已經建立了,需要拉取代碼到本地的步驟:

找到地址

  1.2 新建一個空的文件夾, 使用

 

1.3  git終端 輸入:git clone ssh地址 ;此時提示 yes/no 那么輸入 yes (不然很有可能拉取不了代碼);

拉取成功,會出現項目的文件夾, cd 到 項目目錄,出現master說明當前是在 master 分支上

 

 

2. 本地庫關聯遠程庫的步驟:

   1.  github上新建一個空的遠程倉庫:

 

 

新建完成后會有一個ssh地址: 例如:https://github.com/ImCccc/test001.git

 

  2.  添加ssh key(生成的方法上面已經說明,其實和gitlab添加是一個道理) 

輸入命令:在本地的項目打開git終端,輸入下下面的命令:

git init

git add -A

git commot -m '提交注釋'

git remote add origin https://github.com/ImCccc/test001.git

git push -u origin master

`git init ` 表示在當前的項目目錄中生成本地的git管理;

`git add -A` :使用-A:將新增、刪除、修改的文件改動全保存至緩存區;

`git commit -m "first commit"` :將代碼從緩存區保存至本地倉庫,實際開發中一般使用`git commit -am "說明的文字"`,使用 -a:如果沒文件更改操作(增、刪、改名)就可以省略git add指令;

`git remote add origin ssh地址` :將本地倉庫與指定的遠程倉庫創建 聯系;

`push -u origin master` 將本地倉庫代碼推送至遠程倉庫,實際開發中該指令后需要輸入github 賬號以及密碼。(首次提交注意別遺漏`-u`指定默認主機)

以上指令正常執行后, 本地倉庫的代碼就提交到遠程倉庫了:

 分支操作

新建切換分支

新建: git branch dev

切換: git checkout dev

新建切換一起: git checkout -b dev

提交到遠程倉庫: git push origin -u dev

打開瀏覽器就看到新建的分支了:

 

查看分支:

git branch 

刪除遠程dev分支:

git branch -r -d origin/dev
git push origin :dev

master分支合並到當前分支:

git merge master

git push origin (合並之后提交至遠程倉庫)

 

拉取代碼:

git pull  

等於下面2個命令:

git fetch
git merge 分支

 

新增代碼:

看看是否有文件需要`git add`: git status

    按順序執行以下命令:

git add .   (添加當前目錄的所有代碼)

git commit -m  '提交留言'  (提交在本地的,遠程還沒有看到)

git push origin -u dev  (提交到遠程的 dev 分支, 成功之后,瀏覽器應該會看到提交的代碼)

 

 

 

 

 合並分支merge,或者拉取代碼push, 出現沖突解決方案:

 

出現以上提示, 說明本次更新代碼失敗;主要在於本地工作區間遠程倉庫的新代碼沖突了, 圖解如下:

 

 

 有兩種方式處理沖突: 放棄本地修改 解決沖突后提交本地修改

1. 放棄本地修改

放棄本地修改意味着將 遠程倉庫 的代碼完全覆蓋 本地倉庫 以及本地工作區間

git checkout head .

更新遠程倉庫的代碼就不會出現沖突了:

git pull 或者 git merge dev

  

2. 解決沖突后提交本地修改

將本地修改放入緩存區(成功后本地工作區間的代碼跟本地倉庫代碼會同步), 具體指令:

git stash 

遠程倉庫獲取最新代碼,具體指令:

git pull 或者 git merge dev

取出本地修改的代碼,沖突的代碼就很清晰的展現在我們面前了, 具體指令:

git stash pop

 

然后手工解決沖突,提交代碼:

git add README.md
git commit -am '解決沖突'
git push origin master

 

版本回退:

回退到上一個版本(上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成HEAD~100):

git reset --hard HEAD^

回調未來版本:

Git提供了一個命令git reflog用來記錄你的每一次命令:

回到未來:git reset --hard 97e962c

現在總結一下:

    1. HEAD指向的版本就是當前版本,因此,Git允許我們在版本的歷史之間穿梭,使用命令git reset --hard commit_id
    2. 穿梭前,用git log可以查看提交歷史,以便確定要回退到哪個版本。
    3. 要重返未來,用git reflog查看命令歷史,以便確定要回到未來的哪個版本。

撤銷修改:

git checkout -- readme.txt

git checkout -- readme.txt意思就是把readme.txt文件在工作區的修改全部撤銷,這里有兩種情況:

一種是readme.txt自修改后還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;

一種是readme.txt已經添加到暫存區后,又作了修改,現在,撤銷修改就回到添加到暫存區后的狀態。

總之,就是讓這個文件回到最近一次git commitgit add時的狀態。

git checkout -- file命令中的--很重要,沒有--,就變成了“切換到另一個分支”的命令

 

緩存當前的代碼在其他分支干別的事:

如果要修復一個bug,不過當前正在dev上進行的工作只進行到一半,還沒法提交,Git還提供了一個stash功能,可以把當前工作現場“儲藏”起來,等以后恢復現場后繼續工作:

git stash

首先確定要在哪個分支上修復bug,假定需要在master分支上修復,就從master創建臨時分支:

git checkout master

git checkout -b issue-101

修復完成后,切換到master分支,並完成合並,最后刪除issue-101分支:

git checkout master

git merge issue-101

現在,是時候接着回到dev分支干活了!

git checkout dev

恢復現場:

git stash pop

 

 

命令方式提交代碼太麻煩下面是 vscode 集成 gitLab

 

下載安裝: https://code.visualstudio.com/

 

 

 

 

vscode 集成 git 無需安裝 擴展插件,下面是使用vscode 提交代碼的說明(前提是完成gitLab相關的配置,未完成請參考gitLab教程)

提交代碼的流程是: 拉取 -> 暫存 -> 提交 -> 推送

1)  查看修改文件

 

2)  拉取

拉取的意思是同步服務器上的最新代碼,為了防止代碼沖突,推送之前需要先拉取代碼,操作如下:

 

 3)  暫存更改

單文件暫存:

暫存所有更改:

 

 4)  放棄更改

意思是將修改的文件還原為服務器上的版本;

和暫存更改的操作一樣,選的時候選擇放棄更改即可;

5)  取消暫存更改

暫存更改之后,會顯示已經暫存的文件,可以取消暫存修改:

 

取消之后,文件在更改列表中:

 

6)  提交

提交的意思是將代碼提交在你本地的分支上,提交成功,服務器上是沒有你的提交記錄的,必須推送之后才有,操作如下:

 

7)  推送

推送的意思是將代碼推送到分支上,成功之后,服務器上就有你的提交記錄,別人就可以拉取到你提交的代碼,操作如下:

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM