天天看點

git常用指令行背誦并默寫(全)

退出

:q
           

儲存退出

:wq
           

 拷貝項目到本地

git clone 遠端倉庫位址
           

全局配置

git config --global user.name '你的名字'
git config --global user.email '你的郵箱'
           

目前倉庫配置

git config --local user.name '你的名字'
git config --local user.email '你的郵箱'
           

檢視 global 配置

git config --global --list
           

檢視目前倉庫配置

git config --local --list
           

删除 global 配置

git config --unset --global 要删除的配置項
           

比如

git config --unset --global user.name
           

删除目前倉庫配置

git config --unset --local 要删除的配置項
複制代碼
           

檢視變更狀态

比如送出狀态,哪個更改過這些狀态資訊,很常用

git status
           

将目前目錄及其子目錄下所有變更都加入到暫存區

git add .
           

将倉庫内所有變更都加入到暫存區

git add -A
           

将指定檔案添加到暫存區

git add 檔案1 檔案2 檔案3
           

比較工作區和暫存區的所有檔案的差異

git diff
           

比較某檔案工作區和暫存區的差異

git diff 檔案
           

比較暫存區和 HEAD 的所有差異

git diff --cached
           

比較某檔案暫存區和 HEAD 的差異

git diff --cached 檔案
           

比較某檔案工作區和 HEAD 的差異

git diff HEAD 檔案
           

建立 commit

git commit -m '此處是你對此次送出的描述'
           

将工作區指定檔案恢複成和暫存區一緻

git checkout 檔案1 檔案2 檔案3
           

将暫存區指定檔案恢複成和 HEAD 一緻

git reset 檔案1 檔案2 檔案3
           

将暫存區和工作區所有檔案恢複成和 HEAD 一樣

git reset --hard
           

用 difftool 比較任意兩個 commit 的差異

git difftool 送出1 送出2
           

檢視哪些檔案沒被 Git 管控

git ls-files --others
           

将未處理完的變更先儲存到 stash 中

git stash
           

臨時任務處理完後繼續之前的工作

  • pop 不保留 stash
  • apply 保留 stash
git stash pop
           
git stash apply
           

檢視所有 stash

git stash list
           

取回某次 stash 的變更(根據檢視所有stash的記錄取出某個)

git stash pop stash@{數字n}
           

優雅修改最後一次 commit

git add.
git commit --amend
           

進入後輸入i,使用光标移到要修改的文字上,然後修改,修改完成後,esc,然後:wq儲存退出

:wq
           

保持好的習慣,盡量不要出錯,出錯再用(例如上次送出的描述文字錯誤等)

檢視目前工作分支及本地分支

git branch -v
           

檢視本地和遠端分支

git branch -av
           

檢視遠端分支

git branch -rv
           

切換到指定分支

git checkout 指定分支
           

基于目前分支建立新分支

git branch 新分支
           

建立并切換到該分支

git checkout -b 新分支
           

基于指定分支建立新分支

git branch 新分支 指定分支
           

基于某個 commit 建立分支

git branch 新分支 某個 commit 的 id
           

安全删除本地某分支

git branch -d 要删除的分支
           

強行删除本地某分支

git branch -D 要删除的分支
           

删除已合并到 master 分支的所有本地分支 (本人沒試過這個)

git branch --merged master | grep -v '^\*\| master' | xargs -n 1 git branch -d 
           

删除遠端 origin 已不存在的所有本地分支

git remote prune orign
           

将 A 分支合入到目前分支中且為 merge 建立 commit

git merge A分支
           

将 A 分支合入到 B 分支中且為 merge 建立 commit

git merge A分支 B分支
           

将目前分支基于 B 分支做 rebase,以便将B分支合入到目前分支

git rebase B分支
           

将 A 分支基于 B 分支做 rebase,以便将 B 分支合入到 A 分支

git rebase B分支 A分支
           

變更曆史

目前分支各個 commit 用一行顯示

git log --oneline
           

顯示就近的 n 個 commit

git log -n
           

用圖示顯示所有分支的曆史

git log --oneline --graph --all
           

檢視涉及到某檔案變更的所有 commit

git log 檔案
           

某檔案各行最後修改對應的 commit 以及作者

git blame 檔案
           

标簽操作(沒用過标簽,萬一有用呢)

檢視已有标簽

git tag
           

建立标簽

git tag v1.0
           

建立帶備注标簽

git tag -a v1.0 -m '标簽備注'
           

給指定的 commit 打标簽

git tag v1.0 commitid
           

推送一個本地标簽

git push origin v1.0
           

推送全部未推送過的本地标簽

git push origin --tags 
           

删除一個本地标簽

git tag -d v1.0
           

删除一個遠端标簽

git push origin :refs/tags/v1.0
           

檢視所有遠端倉庫

git remote -v
           

添加遠端倉庫

git remote add 倉庫位址
           

删除遠端倉庫

git remote remove remote的名稱
           

重命名遠端倉庫

git remote rename 舊名稱 新名稱
           

将遠端所有分支和标簽的變更都拉到本地

git fetch remote
           

把遠端分支的變更拉到本地,且 merge 到本地分支

git pull origin 分支名
           

将本地分支 push 到遠端

git push origin 分支名
           

删除遠端分支

git push remote --delete 遠端分支名