Git 命令大全,Git命令彙總,Git命令說明
阿新 • • 發佈:2021-09-13
本文為joshua317原創文章,轉載請註明:轉載自joshua317部落格https://www.joshua317.com/article/128
一、配置操作
# 配置倉庫 | 使用者 | 系統級別的使用者名稱 git config --user | --global | --system user.name 'username' # 配置倉庫 | 使用者 | 系統級別的郵箱 git config --user | --global | --system user.email '[email protected]' # 檢視所有的配置以及它們所在的檔案 git config --list --show-origin # 檢視倉庫 | 使用者 | 系統級別配置 git config --local | --global | --system -l # 編輯倉庫 | 使用者 | 系統級別配置 git config --local | --global | --system -e # 新增一個倉庫 | 使用者 | 系統配置項 git config --local | --global | --system --add user.name joshua317 # 獲取一個倉庫 | 使用者 | 系統配置項 git config --local | --global | --system --get user.name # 移除一個倉庫 | 使用者 | 系統配置項 git config --local | --global | --system --unset user.name
二、基本操作
# 初始化一個倉庫 git init # 建立一個祼倉庫 git init --bare project-name.git # 從指定地址克隆一個倉庫 git clone url # 克隆特定的標籤 git clone --branch <tag> <repo> # 淺克隆最近一次提交記錄的給定倉庫 git clone -depth=1 <repo> # 克隆遠端倉庫的某個分支 git clone -branch new_feature <repo> # 檢視當前工作區狀態 git status # 將當前目錄下的所有檔案新增到暫存區 git add . # 添加註釋並提交 git commit -m 'xxx' # 合併上一次提交(反覆修改) git commit --amend -m 'xxx' # 將 add 和 commit 合併為一步 git commit -am 'xxx' # 刪除暫存中指定的檔案 git rm path/to/filename # 將本地與遠端分支關聯起來 git remote add origin <user>@<host>:/path/to/repository/<project-name>.git # 關聯分支到到遠端倉庫的master分支 git push -u origin master # 設定讓本地某個分支跟蹤遠端的某個分支 git branch --set-upstream-to=origin/<branch> <branch> # 從暫存區將檔案移除 git rm --cached filename # 將檔案徹底從暫存區放 git checkout -- filename # 檢出遠端分支hotfix/fix-menu並建立本地跟蹤分支 git checkout --track hotfix/fix-menu # 顯示進度列表 git stash list # 給當前儲存的修改起個名字 git stash save <message> # 取出給定的暫存 git stash apply stash@{X} # 將記錄列表中取出的給定暫存記錄刪除 git stash drop stash@{X}
三、分支操作
# 顯示本地分支 git branch # 顯示所有分支 git branch -a # 刪除未曾合併過的分支 git branch -D # 刪除已經合併過的分支 git branch -d # 本地分支重新命名 git branch -m oldName newName # 刪除遠端分支 git push --delete origin <branch-name> # 把本地分支與遠端分支關聯起來 git branch --set-upstream-to origin/newName # 檢視當前的本地分支與遠端分支的關聯關係 git branch -v # 檢視本地當前分支與遠端某一分支的差異 git diff origin/develop # 檢視本地 master 分支與遠端 master 分支的差異 git diff master origin/master
四、合併操作
# 將遠端 master 分支合併到本地 master
git merge origin/master
# 將 develop 分支合併到當前分支(不使用 Fast-forward)
git merge --no-ff develop
# 用 mergetool 解決衝突
git mergetool
# 把 a 分支合入到當前分支,且為 merge 建立 commit
git merge a
# 把 a 分支合入到 b 分支,且為 merge 建立 commit
git merge a b
# 匯合提交:將之前的三次提交合併到一處(squash)
git rebase -i HEAD~~~
# 修改提交(edit)
git rebase -i HEAD~3
# 把當前分支基於 b 分支做 rebase,以便把 b 分支合入到當前分支
git rebase b
# 把當前分支基於 b 分支做 rebase,以便把 b 分支合入到 a 分支
git rebase b a
# 將其它分支上的合適提交挑選到當前分支
git cherry-pick <commit-id>
五、標籤操作
# 檢視所有標籤
git tag
# 搜尋某個標籤
git tag -l 'v1.1.*'
# 新建某個標籤
git tag -a v1.1.2 -m "Project v1.1.2 Released"
# 推送某個標籤到遠端
git push origin v1.1.1
# 推送所有標籤到遠端
git push origin --tags
# 檢視某個標籤的版本資訊
git show v1.0.2
# 刪除本地標籤
git tag -d v1.0.1
# 刪除遠端標籤
git push origin --delete tag <tag-name>
# 刪除遠端標籤
git push origin -d <tag-name>
# 刪除遠端標籤
git push origin :refs/tags/<tag-name>
六、回滾操作
# 將本地版本退回到某次提交上
git reset --hard <commit-id>
#本地檔案回滾操作步驟
1. git log filename
2. git reset <commit-id> filename
3. git commit -m "Rollback filename"
4. git checkout filename
# 把暫存區的修改撤銷掉,重新放回工作區
git reset HEAD <檔名>
# 撤銷上一個提交
git revert HEAD
# 回退到上一次 reset 之前
git reset --hard ORIG_HEAD
#回滾沒有提交到暫存區的檔案
git checkout ./
七、日誌操作
# 顯示簡略的提交日誌
git log
# 檢視某個檔案變動的具體日誌資訊
git log -- filename
# 檢視最近兩次更新的內容差異
git log -p -2
# 顯示簡要的增改行數統計
git log --stat
# 顯示最後一次提交資訊
git log -1 HEAD
# 單行顯示日誌資訊
git log --pretty=oneline
# 檢視圖文格式日誌
git log --pretty=oneline --graph --abbrev-commit
# 通過 ASCII 藝術的樹形結構來展示所有的分支,每個分支都標示了它的名字和標籤
git log --graph --oneline --decorate --all
# 檢視檔案改變資訊
git log --name-status
# 顯示所有提交,包括孤立節點
git reflog
八、遠端操作
# 檢視遠端分支名稱,預設為 origin
git remote
# 檢視遠端倉庫的 URL,可能有多個
git remote -v
# 檢視某個遠端倉庫的詳細資訊,預設為 origin
git remote show <origin>
# 新增遠端分支
git remote add <origin> <地址>
# 修改遠端分支的名稱
git remote rename <old-name> <new-name>
# 刪除遠端分支
git remote rm <name>
# 將當前名稱為 gitee 的倉庫推送到遠端 master 分支
git push gitee master
# 檢出遠端分支到本地分支
git checkout -b <branch-name> origin/<branch-name>
# 重新命名遠端分支的名稱
git remote rename master master-bak
# 刪除遠端某個分支
git push origin --delete <branch-name>
# 更新遠端分支列表
git remote update origin --prune
# 強制將本地當前分支推送到遠端倉庫對應的分支
git push origin -f
# 將本地 develop 分支推送到遠端倉庫對應的 remotes/origin/develop 分支
git push origin develop
# 將本地所有分支推送到遠端倉庫對應的分支
git push origin --all
九、統計操作
1.統計倉庫程式碼行數
git log --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'
2.統計指定使用者的程式碼行數
// 將 username 替換具體使用者名稱
git log --author="username" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -
3.統計每個人增刪程式碼行數
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
4.統計提交數
git log --oneline | wc -l
5.更加專業的統計工具 gitstats
http://gitstats.sourceforge.net/
本文為joshua317原創文章,轉載請註明:轉載自joshua317部落格https://www.joshua317.com/article/128