GitLab安裝與使用

Git是目前世界上最先進的分佈式版本控制系統。GitLab是一個利用Ruby on Rails開發的開源應用程序,實現一個自託管的Git項目倉庫,可以瀏覽源代碼,管理缺陷和註釋。

1.安裝git
首先,輸入git,檢查系統是否安裝git
然後,如果沒有安裝,輸入命令

sudo apt-get install git

2.創建版本庫(repository)
(1)創建空目錄

$ mkdir learngit
$ cd $project_root #進入工程目錄
$ pwd #顯示當前目錄
(2)創建空倉庫
$ git init  #初始化git倉庫
$ ls -ah #查看隱藏文件
可以發現目錄下多了一個.git文件
3.把文件添加到倉庫
git add <file> #添加文件到倉庫 可反覆多次使用,添加多個文件;
git commit -m "init commit" #提交代碼到倉庫
例如:添加多個文件到倉庫
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."

4.添加到遠程庫

git remote add origin [email protected]:namespace/projectname.git #連接到git遠程庫
git push -u origin master #第一次把本地庫的所有內容(當前分支master)推送到遠程庫上,並將本地的master分支和遠程的master分支關聯起來

以後提交的命令

$ git push origin master

5.從遠程庫克隆

首先,登陸GitHub,創建一個新的倉庫

用命令git clone克隆一個本地庫

$ git clone [email protected]:examplename/examplefolder.git
$ cd examplefolder
$ ls
或者使用http協議地址
$ git clone https://github.com/examplename/examplefolder.git
6.版本退回
$ git reset --hard HEAD^

用git status 查看是否有文件被修改過;

用git diff查看修改內容;

用git log查看提交歷史,以便確定要回退到哪個版本。

用git reflog查看命令歷史,以便確定要回到未來的哪個版本。

7.撤銷修改

丟棄工作區的修改

$ git checkout -- readme.txt

把暫存區的修改撤銷掉,重新放回工作區

$ git reset HEAD readme.txt
$ git checkout -- readme.txt
8.刪除文件

從文件管理器中刪除文件

$ rm test.txt
從版本庫刪除文件
$ git rm test.txt
$ git commit -m "remove test.txt"

從git上刪除文件

$ git rm test.txt
$ git commit -m "remove test.txt"
$ git push origin develop

把誤刪的文件恢復到最新版本

$ git checkout -- test.txt

9.創建與合併分支

$ git checkout -b dev #創建並切換到dev分支
$ git branch #查看當前分支
$ git add readme.txt #在dev分支添加並提交文件
$ git commit -m "branch test"

$ git checkout master #切換回主分支master
$ git merge dev #將dev分支的結果合併到主分支master
$ git branch -d dev #刪除dev分支
$ git branch #查看當前分支

10.解決衝突

當Git無法自動合併分支時,必須先手動解決衝突(通過vim)。解決衝突後,再提交,合併完成。

如下命令可查看分支合併圖

git log --graph

11.臨時工作分支

修復bug時,我們會通過創建新的bug分支進行修復,然後合併,最後刪除;

當手頭工作沒有完成時,先把工作現場git stash一下,然後去修復bug,修復後,再git stash pop,回到工作現場。

$ git status
$ git stash #隱藏當前工作現場
$ git status

$ git checkout master #切換到master分支
$ git checkout -b issue-101 #創建新的分支,並在本地修改文件
$ git add readme.txt 
$ git commit -m "fix bug 101"
$ git checkout master #切換到master分支
$ git merge --no-ff -m "merged bug fix 101" issue-101 #合併臨時分支issue-101
$ git branch -d issue-101 #刪除分支issue-101

$ git checkout dev #切換到dev分支
$ git status
$ git stash list
$ git stash pop #恢復工作現場,並刪除stash內容
$ git stash list

$ git stash apply stash@{0} #可以多次stash,恢復指定的stash

12.多人協作

$ git remote -v #查看遠程庫的信息 會顯示出可以抓取和推送的origin地址
  • 推送分支

在git中,分支完全可以在本地自己玩,是否推送,視個人情況而定。

master分支是主分支,要時刻與遠程同步;

dev分支是開發分支,也需要與遠程同步;

bug分支只用於在本地修復bug,沒必要推到遠程;

feature分支是否推到遠程,取決於你是否和你的小夥伴合作在上面開發。

$ git push origin dev  #把本地dev分支推送到遠程庫
  • 抓取分支
$ git clone [email protected]:examplename/examplefolder.git
$ git branch #查看分支
$ git checkout -b dev origin/dev #創建遠程origin的dev分支到本地

$ git commit -m "add /usr/bin/env"
$ git push origin dev #把dev分支push到遠程

$ git add hello.py 
$ git commit -m "add coding: utf-8"
$ git push origin dev 

$ git pull #未指定本地dev分支和遠程origin/dev分支的鏈接 no tracking information
$ git branch --set-upstream dev origin/dev
$ git pull

git pull成功,但是合併有衝突,需要手動解決(通過vim進入文件,手動修改刪除),解決後,提交,再push。

$ git commit -m "merge & fix hello.py"
$ git push origin dev


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章