我在工做中使用 vscode 做爲開發編輯器,本地安裝了 TortoiseGit 、git bash、Conemu 來使得命令行操做有所減小,可是必要的命令仍是必須的。爲了提升操做的效率與使用體驗,還作了自定義配置。html
在這裏記錄一下我經常使用的 Git 命令清單,方便查閱。git
# 配置用戶名 git config --global user.name "本身的名字" # 配置郵箱 git config --global user.email "本身的郵箱" # 生成設備公鑰 ssh-keygen -t rsa || ssh-keygen # 測試 github 鏈接狀態 ssh -T git@github.com # 拷貝項目與歷史記錄 git clone [url]
# 顯示當前的Git配置 git config --list # 編輯Git配置文件 git config -e [--global]
# 查看提交日誌,圖形化顯示合併關係 (自定義簡化命令) git lgh # 顯示整個本地倉庫的最近提交,包括全部分支 git reflog # 顯示工做區有變動的文件 git status => git st # 查看某次 commmit 的提交信息 git show [commitID] # 顯示某次提交時,某個文件的內容 $ git show [commitID]:[filename] # 顯示兩次提交之間的差別 $ git diff [first-commitID] [second-commitID]
# 重置當前分支的HEAD爲指定commitID,同時重置暫存區和工做區,與指定commit一致 git reset --hard [commitID] # 取消 rebase git rebase --abort
=>
後爲自定義的簡化命令
# 拉取遠端最新代碼(本地沒有修改) git pull --rebase => git pr # 拉取遠端最新代碼(本地有修改) git pull --rebase --autostash => git prs # 添加指定文件到暫存區 git add [file1] [file2] ... # 添加當前目錄的全部文件到暫存區 git add . # 提交 log 註釋 git commit -m "commit log" # 推送到遠端 git push
# 列出全部本地分支 git branch => git br # 列出全部遠程分支 git branch -r # 列出全部本地分支和遠程分支 git branch -a # 新建一個分支,但依然停留在當前分支 git branch [branch-name] # 新建一個分支,並切換到該分支 git checkout -b [branch] # 合併指定分支到當前分支 git merge [branch] # 刪除分支 git branch -d [branch-name] # 刪除遠程分支 git push origin --delete [branch-name]
[user] name = yanyue404 email = xiaoyueyue165@gmail.com signingkey = "" [credential] helper = store [http] postBuffer = 500M sslBackend = openssl maxRequestBuffer = 100M [color] diff = auto status = auto branch = auto ui = true [alias] # 簡化命令 br = branch ci = commit co = checkout st = status mg = merge # 日誌 lg = log --color --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit lgh = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit lgr = log --color --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --reverse last = log -10 # 回退 back = checkout master unstage = reset HEAD rh = reset --hard HEAD # pull pr = pull --rebase prs = pull --rebase --autostash [format] pretty = %C(yellow)%h%Creset %s %C(red)(%an, %cr)%Creset [help] autocorrect = 1 [core] compression = 0 quotepath = true [i18n] commitencoding = utf-8 logoutputencoding = utf-8 [gui] encoding = utf-8 [merge "ours"] driver = true