Git相關的命令,Git常用命令大全,一頓操作慫如狗
撤銷修改
撤銷修改是指將工作區中的修改撤銷。
語法:git checkout 文件名或路徑
# 撤銷工作區中當前目錄中的所有更改
git checkout .
# 撤銷工作區中指定文件的修改
git checkout -- filename
git checkout 命令只能撤銷工作區中的修改,而不能撤銷暫存區中的修改。
git checkout 命令還有一個非常重要的功能就是切換分支。可用於分支管理。
# 切換到已經存在的分支
git checkout master
# 切換分支的同時,創建分支
git checkout -b my-dev
這裏,只是簡單說一下 git checkout 如何切換分支,等你需要用到分支管理的時候,自然就明白了。
版本回退
版本回退是指將版本庫從當前版本回退到其他的版本。
語法:git reset --hard 版本號
有時,我們需要將 Git 版本庫回退(還原)到以前的某個版本,可以使用 git reset 命令。
在 Git 中,HEAD 指針指向的是當前版本,也就是最新的 commit id,上一個版本是 HEAD^,上上一個版本就是 HEAD^^,上50個版本可以寫成 HEAD~50。
可以使用下面的命令,將 Git 回退到上一個版本:
這時,我們再來使用 git log 命令查看版本庫被修改的日誌。卻發現,看不到被回退的版本之後的歷史記錄了。如果,想再回到最新的版本,怎麼辦?
只要剛剛的命令行窗口沒有關掉,你就可以順着往上面找,直到發現最新的版本號(如420882d0676403a6a2),於是,就可以使用下面的命令還原到指定的版本:
版本號(commit id)沒必要寫全,一般寫前七位就夠了,Git會自動去匹配。
但是,假如你回退到了某個版本後,把電腦關了。第二天又後悔了,想要恢復到最新版本。
這時,可以使用命令 git reflog 來查看你的每一次操作日誌,該命令可以輸出對應的版本號的操作記錄。這樣,我們就可以恢復到任意版本了。
git reset 的選項
git reset 有很多可用的選項。可以通過幫助命令來查看。
其中,最常用的三個選項是:
--mixed: reset HEAD and index。表示重置 HEAD 指針和 index 暫存區,但保持工作區不變。它是默認選項。
--soft: reset only HEAD。表示僅僅重置 HEAD 指針,即只改變 HEAD 的指向,但保持工作區和暫存區不變。
--hard: reset HEAD, index and working tree。表示重置 HEAD 指針、index 暫存區和工作區。這個纔是完整的版本回退。
#查看版本庫的狀態
git status 命令非常有用。它可以查看版本庫的當前狀態,還可以看到相關操作的提示信息。
查看修改
#如果你修改了工作區中的某些文件,想要查看具體更改了什麼內容,可以使用 git diff 命令。
git diff .
git diff filename
查看工作區和版本庫的區別
如果你只是修改了工作區,還沒有 git add 到暫存區,想要查看工作區和版本庫的區別。
# 查看工作區和版本庫的區別
gitdiff
上述命令只能查看到工作區中已經存在的文件的修改,如果是新創建的文件,它追蹤不到。如果修改和新文件已經 git add 到了暫存區,就需要使用下面的命令來查看。
查看暫存區和版本庫的區別
如果你修改了工作區,已經 git add 到了暫存區,想要查看暫存區和版本庫的區別。
查看兩個版本之間的區別
如果你修改了工作區,已經 git add 到了暫存區,並且 git commit 到了版本庫。這樣 head 指針就指向了最新的版本。想要比較兩個版本之間的區別。
語法: git diff 版本號1 版本號2
# 比較兩個版本之間的差異
git diff 41295230a7d9af
在這個例子中,412952 是上一個版本的版本號,0a7d9af 是當前的版本號(最新版本號)。只取前 7 位就夠了。
# 比較之前的版本和當前版本的差異
git diff 4129523head
# 比較某個文件在兩個版本之間的差異
git diff 09d9b45 head ./config/app.php
# 比較之前的版本和當前版本的差異的簡寫形式
git diff 4129523
查看本地的兩個分支的區別
語法格式爲:git diff branch1 branch2
# 比較 develop 分支和 master 分支的區別
git diff develop master
查看本地分支和遠程分支的區別
# 對比本地的 develop 分支和遠程的 master 分支的區別
git diff develop origin/master
查看版本庫的歷史記錄
如果你想查看版本庫提交的歷史記錄 ,可以使用 git log 命令。
# 查看版本庫的歷史記錄
git log
# 查看版本庫的歷史記錄,美化輸出
git log--pretty=oneline
# 查看版本庫的歷史記錄,只顯示前5 條
git log-5
git log-5--pretty=oneline
git log 命令默認會進入日誌查看模式,可按 q 退出查看模式。
git log 命令會顯示從最近到最遠的提交日誌,每一行的前面的一大串字符就是 commit id(版本號),它和 SVN 的版本號不一樣,Git 的版本號不是遞增的數字,而是一個 SHA1 加密計算出來的一個非常大的數字,用十六進制表示。
場景分析
場景一
假如你只是修改了工作區,還沒有 git add 到暫存區。可以使用下面的命令撤銷工作區中的修改。
# 僅僅是撤銷工作區中的修改
gitcheckout .