Git的檢視,對比,撤銷,修改,重寫

2021-07-09 12:28:16 字數 1598 閱讀 1638

1. 檢視與對比
git show (commit/tag/tree/blog)

git show master^(master~) //檢視master下的第一副提交

git show master^2

//檢視master下的第二副提交

git show --oneline //將資訊縮減

git show --stat //輸出commit的改變統計資訊

git log

//檢視完整commit 資訊

git log

-p//輸出每乙個commit之間的差異資訊

git log

--stat //輸出每乙個commit之間差異的統計資訊

git diff //輸出工作區與暫存區之間的差異

git diff --cached //檢視暫存區當前與歷史的差異

git diff head head~2

//比較兩個commit之間的差異

git diff head head~2 master.txt //比較兩個commit的某個檔案的差異

git diff --color-words

//輸出具體單詞的差異用不同的顏色標出

git diff --word-diff

//輸出具體單詞的差異

2.撤銷與修改
git checkout  //建立和切換分支,還原工作區

git reset //還原暫存區

git clean //清除還沒新增到暫存區的檔案 -n 顯示將要刪除的檔案 -f 刪除檔案 -df 刪除檔案和目錄

//需要注意的是在 .gitignore 檔案中忽略的檔案不會被刪除,如果需要刪除.gitignore忽略的

//檔案使用 git clean -n -x(大寫) git clean -f -x(大寫) 刪除

git revert //產生乙個新的提交來覆蓋原來提交產生的修改

git checkout (tag/hash..能代表乙個commit的關鍵字) -- master.txt ///在檔案修改還沒新增到暫存區時,用暫存區的內容覆蓋工作區

3.重寫歷史紀錄
git commit --amend //用來產生乙個新的提交來替換當前產生的這個提交

git rebase master(分支名) //產生乙個線性的合併提交,產生的commit類似於

//從(分支名)中衍生出來,執行 git rebase --continue 前需要先add

git reflog //維護了head引用的歷史

git reset --hard head@

//還原到head引用歷史指向的commit,還原暫存區和工作區

git reset --mixed // 還原了暫存區並沒有還原工作區

git reset --soft (分支名) //什麼都不還原,只是把head指向分支引用

//since 20160119

git 修改 撤銷

git status 初始狀態是,什麼都沒有修改 on branch master nothing to commit working directory clean 修改了乙個檔案fu 狀態變成 root 172.18 4.100 gitlearn git status on branch mas...

Git撤銷修改

撤銷修改 加入在readme中加入了不想要的語言,在沒提交之前,使用 git status 檢視可以得到如下 遇到這種情況可以手動刪除,也可以使用 git checkout file命令丟棄工作區的修改。如圖,新的文件中取出了新增的部分。git checkout readme.txt會遇到兩種情況。...

git 撤銷修改

命令 git checkout file 命令git checkout readme.txt意思就是,把readme.txt檔案在工作區的修改全部撤銷,這裡有兩種情況 一種是readme.txt自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態 一種是readme.txt已經新增...