「備忘錄」60+Git經常使用命令行

觀感度:🌟🌟🌟🌟🌟html

口味:椒麻雞絲前端

烹飪時間:10mingit

本文已收錄在Github github.com/Geekhyt,感謝Star。程序員

Git 的命令實在是太多了,有的小夥伴就說了,我能夠用客戶端(Source Tree、Gitkraken、tortoiseGit)它們不香嗎?github

一般狀況下,一些簡單操做是香的。可是建議你不要越過命令行這座山而直接去使用 GUI。(並且強烈建議學習一下 Git 的原理)web

先不論 GUI 是否支持複雜的操做,當你在實際工做中遇到問題的時候,可能你沒法找到 GUI 的解決方案,由於搜索引擎查出來的都是命令行。並且命令行的錯誤提示是很是詳細的,你能夠準確鎖定你錯誤的緣由以及正確的使用方法,孰能天然生巧。安全

其次,程序員使用命令行是一件多麼酷的事情啊,在黑框框裏操做的時候難道沒有一種黑客既視感嗎?這不就是小時候夢想着成爲的樣子麼?:)app

請你給你的熱愛多一點點堅持!tcp

本文整理了一些經常使用的 Git 操做,老司機能夠溫故知新,新手能夠點贊收藏。文末提供了入門教程及學習資源,請自行下滑~編輯器

配置操做

全局配置

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 --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
複製代碼

將工做區指定文件恢復成和暫存區一致

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 的變動

git stash pop stash@{數字n}
複製代碼

優雅修改最後一次 commit

git add.
git commit --amend
複製代碼

分支操做

查看當前工做分支及本地分支

git branch -v
複製代碼

查看本地和遠端分支

git branch -av
複製代碼

查看遠端分支

git branch -rv
複製代碼

切換到指定分支

git checkout 指定分支
複製代碼

基於當前分支建立新分支

git branch 新分支
複製代碼

基於指定分支建立新分支

git branch 新分支 指定分支
複製代碼

基於某個 commit 建立分支

git branch 新分支 某個 commit 的 id
複製代碼

建立並切換到該分支

git checkout -b 新分支
複製代碼

安全刪除本地某分支

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 url
複製代碼

刪除遠端倉庫

git remote remove remote的名稱
複製代碼

重命名遠端倉庫

git remote rename 舊名稱 新名稱
複製代碼

將遠端全部分支和標籤的變動都拉到本地

git fetch remote
複製代碼

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

git pull origin 分支名
複製代碼

將本地分支 push 到遠端

git push origin 分支名
複製代碼

刪除遠端分支

git push remote --delete 遠端分支名
複製代碼
git push remote :遠端分支名
複製代碼

參考及 Git 學習資源

❤️愛心三連擊

1.看到這裏了就點個贊支持下吧,你的是我創做的動力。

2.關注公衆號前端食堂,你的前端食堂,記得按時吃飯

3.本文已收錄在前端食堂Github github.com/Geekhyt,求個小星星,感謝Star。

相關文章
相關標籤/搜索