Ubuntu gitlab 操作手冊

1、Ubuntu 配置 ssh Keys

打開電腦終端,生成ssh的key
輸入命令:
    ssh-keygen -o -t rsa -b 4096 -C "登錄郵箱"
注意: -C 後面的郵箱,是你自己註冊的時候的郵箱
成功之後的結果

2、gitlab中添加ssh key

終端輸入:cat ~/.ssh/id_rsa.pub,將你的key拷貝出來添加到gitlab中設置中,Add key。

3、本機使用git

3.1 git 全局配置 Git global setup

    填寫自己的用戶名和郵箱
        git config --global user.name "***"
        git config --global user.email "****@qq.com"

3.2 創建新的項目 Create a new repository

    git clone 網址.git
    cd 項目文件家
    touch README.md
    git add README.md
    git commit -m "操作意義"
    git push -u origin master

3.3 上傳已有的項目 Push an existing folder

    cd existing_folder
    git init #初始化工作目錄
    git status # 查看git工作區的狀態信息
    git remote add origin 網址.git

    git add . # 添加文件 到暫存區域
    git commit -m "Initial commit" # 提交暫存區區域文件到git本地倉庫 # -m 之後的表示標註,說明信息 -a表示直接添加文件
    git push -u origin master

4、常用的命令

    tree .git/   #存儲所有歷史版本信息即配置文件,是通過git init生成的目錄
    add #添加文件內容至索引
    branch #列出、創建或刪除分支
    checkout #檢出一個分支或路徑到工作區
    clone #克隆一個版本庫到一個新目錄
    commit #記錄變更到版本庫
    init #創建一個空的 Git 版本庫或重新初始化一個已存在的版本庫
    log #顯示提交日誌
    merge #合併兩個或更多開發歷史
    mv #移動或重命名一個文件、目錄或符號鏈接
    pull #獲取併合並另外的版本庫或一個本地分支
    push #更新遠程引用和相關的對象
    rm #從工作區和索引中刪除文件
    show #顯示各種類型的對象
    status #顯示工作區狀態
    tag #創建、列出、刪除或校驗一個GPG簽名的 tag 對象

4 暫存區數據操作

4.1 git刪除數據

01. 未添加到暫存區的數據->直接使用rm命令刪除即可
02.已添加到暫存區的數據
   1 git rm --cached database 2 #將文件從git暫存區域的追蹤列表移除,並不刪除當前工作目錄內的數據文件->只刪除緩存 3 git rm -f database 4 #將文件數據從git暫存區和工作目錄一起刪除->永久刪除 

4.2 git重命名數據

01.未添加到暫存區的數據->直接mv/rename改名即可
02.已添加到暫存區數據
 1 git mv README NOTICE # README修改前/NOTICE修改後;最後進行提交git倉庫 2 注意:也可mv修改名稱→刪除git倉庫的文件快照git rm '*.txt'→將新的文件添加進去→提交git倉庫 

5 歷史記錄數據

5.1 查看歷史記錄

    git log #查看提交歷史記錄
    git log -2 #查看最近幾條記錄
    git log -p -1 #-p顯示每次提交的內容差異,例如僅查看最近一次差異
    git log --stat -2 #--stat簡要顯示數據增改行數(能夠看到提交中修改過的內容,對文件添加或移動的行數,並在最後列出所有增減行的概要信息)
    git log --pretty=oneline #--pretty根據不同的格式展示提交的歷史信息
    git log --pretty=fuller -2 #以更詳細的模式輸出提交的歷史記錄
    git log --pretty=fomat:"%h %cn" #查看當前所有提交記錄的簡短SHA-1哈希字串與提交着的姓名

使用format參數來指定具體的輸出格式
    %s 提交說明
    %cd 提交日期
    %an 作者的名字
    %cn 提交者的姓名
    %ce 提交者的電子郵件
    %H 提交對象的完整SHA-1哈希字串
    %h 提交對象的簡短SHA-1哈希字串
    %T 樹對象的完整SHA-1哈希字串
    %t 樹對象的簡短SHA-1哈希字串
    %P 父對象的完整SHA-1哈希字串
    %p 父對象的簡短SHA-1哈希字串
    %ad 作者的修訂時間

5.2 還原歷史記錄

    Git服務程序中有一個版本指針HEAD,當用戶申請還原數據時,將HEAD指針指向到某個特定的提交版本。但Git爲避免歷史記錄衝突用SHA-1算出十六進制的哈希字串來區分提交版本。默認HEAD指針會指向到最近一次提交記錄,上一個提交版本即HEAD^,上上一個版本即HEAD^^ (HEAD~5簡化表示往上數第五個提交版本)
    git reset --hard HEAD^ #還原歷史提交版本上一次
    git reset --hard 3de15d4 # 還原到制定節點的歷史點 找到歷史還原點的SHA-1值後,就可以還原(值未寫全時系統會自動匹配) 

5.3 還原未來數據

即還原到歷史數據後想再次撤銷更改,但是git log已經找不到這個版本了
    git reflog #查看未來歷史更新點 

5.4 標籤使用(於commit之後)

    git tag v1.0 #當前提交內容打一個標籤(方便快速回滾),每次提交都可以打個tag
    git tag #查看當前所有的標籤
    git show v1.0 #查看當前1.0版本的詳細信息
    git tag v1.2 -m "version 1.2 release is test" 5 #對當前版本(最新)打標記,用於commit提交之後接着進行打標記(-a指定標籤名,-m爲說明信息)
    git tag -d v1.0 #我們爲同一個提交版本設置了兩次標籤,刪除之前的v1.0

6 分支管理

    在實際的項目開發中儘量保證master分支穩定,僅用於發佈新版本,平時不要直接修改裏面的數據文件。而開發都在dev分支進行修改,即每個人從dev分支創建自己個人分支,開發完合併到dev分支,最後合併到master分支

6.1 創建分支

    git branch linux #創建分支
    git branch #查看分支情況,當前分支前有*號
    git checkout linux #Switched to branch 'linux' 切換分支
    git checkout --<file> #一鍵還原,直接將git倉庫的文件覆蓋當前文件[危險]

6.2 合併分支(自動合併)

需求:把linux的工作成果合併到master分支上

    git checkout master #切換到master分支
    git merge linux #合併Linux分支至master
    git branch -d linux #確認合併完成後,建議刪除分支 

注意:系統默認不編輯空分支

6.3 合併衝突模擬(手動合併)

注意:只有同目錄同文件同行纔會造成合並衝突的情況,只要有一點不同就能夠進行合併

01.準備:
    cd git_data
    echo 'master code' >>README
    git commit -a -m 'this master branch commit'
    git checkout linux
    cat README
    echo 'linux code' >>README
    git commit -a -m 'this linux branch second commit'
    git checkout master

02.現象:
    # git merge linux
    Auto-merging README ->自動合併 README
    CONFLICT (content):Merge conflict in README ->衝突(內容):合併衝突於 READM
    Automatic merge failed; fix conflicts and then commit the result.
    ->自動合併失敗;修正衝突然後提交修正的結果

03.解決:人工選擇想要的內容,同時修改master和linux分支同文件並提交,最後merge

    # vim README
    this is linux branch hello world
    master code
    linux code
    # git commit -a -m '解決合併衝突'
    [master 19cb918] 解決合併衝突
    # git merge linux
    Already up-to-date.

 

4 刪除分支

由於之前已合併了linux分支,故現在看到它在列表中,在這個列表中分支名字前沒*號的分支通常可用git branch -d刪除且不會失去任何東西
    # git branch --no-merged #查看所有包含未合併工作的分支testing
    # git branch -d testing ->刪除分支
    error: The branch 'testing' is not fully merged. ->分支'testing'未進行合併
    If you are sure you want to delete it, run 'git branch -D testing'. ->若確定想刪除它,即使用-D強制刪除

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