Git 的使用 for Linux

快速引導:在放置程式碼的目錄下,進行初始化,並設定使用者的資訊

# git init

# git config --global user.name "user"
# git config --global user.email "user@xxx.com”
# git config -–global core.editor vi 

// 從 GitLab 下載儲存庫 (Remote Repository)
# git clone <repo URL>

// 在工作區 (Workspace) 內指定特定檔案建立索引
# git add readme.txt

// 工作目錄 (Working Directory) 內所有檔案建立索引
# git add .

// 將建立索引的檔案提交至本地資料庫 (Local Repository)
# git commit -m "todo ...."

// 如果 GitLab 目錄內沒有其他分支,可以直接用 git push
# git push

// 上傳所有分支至  GitLab 目錄
# git push --all origin

Git 指令操作說明

全局配置

命令說明
git config -l查看全局配置
git config --global user.name [name]設定用户名
git config --global user.email [email]設定E-Mail
git config --global core.editor vi 設定文字編輯器為 vi
git config --global alias.st statusstatus 縮寫為 st
git config --global alias.co checkoutcheckout 縮寫為 co
git config --global alias.br branchbranch 縮寫為 br
git config --global alias.ci commitcommit 縮寫為 ci

建立儲存庫

命令說明
git init初始化本地儲存庫
git clone <url>下載雲端儲存庫

修改和提交

命令說明
git status查看所有文件狀態
git status [FILE]查看指定文件狀態
git add .提交當前目錄所有文件到暫存區
git add [FILE]提交指定文件到暫存區
git commit -m [message]提交暫存區到本地儲存庫,message代表說明信息
git commit --amend提交暫存區到本地儲存庫,覆蓋上一次提交
git diff查看變更内容,對比工作目錄與暫存區
git diff --cached查看變内容,對比暫存區與本地儲存庫
git diff master origin/master查看變更内容,對比本地代码库與本地伺服器儲存庫,origin代表伺服 器的意思
git mv [old] [new]文件改名
git rm [FILE]刪除文件
git rm --cached [FILE]停止跟踪文件但不刪除
git diff HEAD^ HEAD // 比較最新版與最新版前一次版本的差異
git diff ---stat // 檢視更新的簡略統計資訊。
git diff --name-only // 在更新的訊息後方顯示更動的檔案列表。
git diff --name-status // 顯示新增、更動、刪除的檔案列表。
git diff --diff-filter= [(A|C|D|M|R|T)…​[*]]] // 配合檔案狀態來篩選顯示檔案列表。
A = Added
C = Copied
M = Modified
R = Renamed
T = Changed
D =Delete

查看提交log

命令說明
git log查看儲存庫日志
git log -p查看儲存庫日志,同时顯示具体修改
git log -2查看儲存庫最近两次提交的log
git log [FILE]查看指定文件的儲存庫log
git log --graph --pretty=oneline --abbrev-commit -20查看儲存庫log,用圖形說明
git reflog查看操作記錄

版本回撤

命令說明
git reset HEAD将文件從暫存區中回退到工作區,git add的反操作
git reset 版本号(前七位)退回到指定版本
git reset --soft HEAD只改變提交點,工作目錄與暫存區中内容都不改變
git reset --hard HEAD退回到當前版本,撤銷工作目錄與暫存區中的所有内容
git reset --hard HEAD^退回到上一个版本
git reset --hard HEAD^^退回到上上一个版本
git reset --hard HEAD~2退回到上上一个版本
git chechout [FILE]撤銷某一个文件當前的修改
git revert [CommitID]撤銷指定的commit,會新增一个commit,將版本改回修改前
git clean -xfd清除所有非GIT跟踪文件

分支branch操作

命令說明
git branch查看本地分支
git branch -r查看伺服器分支
git branch -a查看所有分支
git branch [branch-name]新建本地分支,注意不会自動切换,依然停留在當前分支
git branch -d [branch-name]刪除分支,注意只能刪除已经合併過的分支
git checkout [branch/tag]切换到指定分支,并更新工作區
git checkout -b [branch-name]新建本地分支,併切換到分支
git tag查看所有本地標簽
git tag [tagname]建立標簽,基于最新版本提交
git tag -a [tagname] -m [message]建立標簽,基于最新版本提交,附带信息
git tag -a [tagname] -m [message] [CommitID]建立標簽,基于指定的Commit,附带信息
git tag -d [tagname]刪除標簽
git show [tagname]查看指定標簽信息
git push origin [tagname]:refs/tags/[tagname]更新指定分支

合并与衍合

命令說明
git merge [branch]合併指定分支到當前分支
git rebase [branch]合併指定分支到當前分支,將當前分支的修改連接在指定分支之后
git fetch [branch]將伺服器儲存庫的代碼更新到本地的儲存庫

远程操作

命令說明
git remote -v查看伺服器版本庫信息
git remote show [remote]查看指定伺服器版本庫信息
git remote add [remote] [url]添加伺服器版本庫
git fetch [remote]從伺服器儲存庫 获取代码到本地儲存庫
git pull [remote] [branch]下載代碼及快速合併
git push [remote] [branch]上傳代碼及快速合併
git push [remote]:[branch/tag-name]刪除 伺服器分支或標簽
git push --tags上傳所有標簽

參考資料

https://b31jsc.github.io/2018/06/13/Git%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/

https://www.tpisoftware.com/tpu/articleDetails/1450