git 隨機摘要

重命名
git mv oldFileName newFileName

撤銷本地倉庫和暫存區提交的記錄和提交的文件
git reset --hard

創建新分支(基於某次提交或者基於某個分支)
git checkout -b 分支名 提交id/分支名

查看git歷史記錄
git log
查看git歷史記錄簡約一條
git log --oneline
查看git歷史記錄簡約一條+圖形化
git log --oneline --graph
查看git所有分支提交的歷史記錄簡約一條+圖形化
git log --oneline --all  --graph
查看git所有分支最新的4次提交的歷史記錄簡約一條+圖形化
git log --oneline --all -n4 --graph
注:這4次提交指的是所有分支加起來的最新提交的4次,指的不是單個分支


怎樣刪除分支?
git branch -D 刪除的分支名

怎樣修改當前分支最新一次提交的message信息?
git commit --amend 
esc :wq

怎樣修改老舊commit的message信息?前提是:此分支尚未推送至遠程
找到操作提交記錄的父提交id,也可以理解爲上一次提交記錄
git rebase -i <父commitid> 
只修該提交信息用把pick更新爲r,然後在git彈出的命令窗口中,修改提交記錄信息,最後保存退出即可


怎樣把連續的多個commit整理成1個?前提是:此分支尚未推送至遠程,只修該提交記錄,對提交文件內容不做修改
找到操作提交記錄的父提交id,也可以理解爲上一次提交記錄
git rebase -i ac5e973
1.找到像合併的那幾個提交信息
2.想合併的幾次提交前面的pick保留一個,其餘想合併的提交將pick更新爲s,然後在git彈出的命令窗口中,添加修改提交記錄信息,最後保存退出即可


怎樣把間隔的幾個commit整理成1個呢?
前提是:此分支尚未推送至遠程,只修該提交記錄,對提交文件內容不做修改
找到操作提交記錄的父提交id,也可以理解爲上一次提交記錄
git rebase -i ac5e973
1.找到像合併的那幾個提交信息
2.把想要合併的幾個間隔的提交記錄,讓他們排列在一起
3.想合併的幾次提交前面的pick保留一個,其餘想合併的提交將pick更新爲s,然後在git彈出的命令窗口中,添加修改提交記錄信息,最後保存退出即可

怎樣比較暫存區和HEAD所含文件的變化?適用於,工作區的文件已經添加至暫存區,尚未進行提交,比較暫存區和當前分支的文件的不同,如果添加至暫存區的文件正確的,可以進行提交,推送遠程;如果比較之後發現暫存區的文件是錯誤的,這是可以在工作區將錯誤的文件內容進行修改,重新將的錯誤修改後的文件,添加至暫存區,再和HEAD進行文件比對。
git diff --cached

怎樣比較工作區和暫存區所含文件的差異呢?
git diff

如果只想比較某一個文件呢?
git diff -- 比較的文件名

如果只想比較某幾個文件呢?一次排列即可
git diff -- 比較的文件名1 比較的文件名2 比較的文件名3

如何把暫存區恢復成和HEAD的一樣?
使用場景:
本來打算,將暫存區的文件,進行提交本地倉分支當做一個新的版本,但是發現,現在工作區的對文件的修改更適合作爲一個新的版本,提交至本地倉庫的分支上,暫存區的文件需要全部刪除,不要了。
git reset HEAD

再用git diff --cached,比較一下暫存區和HEAD文件變化,如果返回爲空,說明沒變化保持一樣,如果有記錄說明暫存區和HEAD 文件有不同的記錄如下所示

如何讓工作區的全部文件恢復爲和暫存區一樣?
應用場景:
在工作區我做了一版文件優化的操作,將工作區優化的文件添加至暫存區,先不進行提交;然後,在工作區又對優化版本進行修改,但是測試效果,還不如以前添加至暫存區的優化版本呢,想把工作區恢復到添加暫存區優化的版本。
git checkout

如何讓工作區的指定某一個文件恢復爲和暫存區一樣?
git checkout 指定文件名

如何讓工作區的指定某些文件恢復爲和暫存區一樣?
git checkout 指定文件名1 指定文件名2 指定文件名3


變更工作區的文件用git checkout
變更工作區的文件用git reset

怎樣取消暫存區部分文件和HEAD一樣?
git reset HEAD 指定恢復文件名1 指定恢復文件名2 指定恢復文件名3

消除最近的幾次提交?
git reset --hard 想回到指定的commit
注:此命令,要慎用一旦執行此命令,之後的提交記錄和文件全部刪除,找不回來了。

1.查看不同分支全部文件的差異?
git diff 分支1  分支2

2.查看不同分支指定的文件的差異?
git diff 分支1  分支2 -- 指定查看差異的文件名

3.查看不同分支指定提交的文件的差異?
git diff 分支1commit  分支2commit

4.查看不同分支指定提交併且指定的文件的差異?
git diff 分支1commit  分支2commit -- 指定查看差異的文件名

24效果一樣的

刪除文件
git rm 刪除的文件名

禁止向集成分支執行變更歷史的操作?
企業dev/test/master分支禁止使用git rebase -i命令,行變更歷史的操作。
禁止向集成分支執行刪除提交記錄和提交文件的操作?
企業dev/test/master分支禁止使用git rebase -i命令,提交有問題就做回滾,不能做刪除。
禁止向集成分支執行強制推送遠程操作操作?
企業dev/test/master分支禁止使用git push -f origin 本地分支名
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章