有關git的常用操作整理

 

最近開始使用git作爲版本控制工具,但是自己老是記不住相應的命令,所以在這裏整理部分有關git的命令,

一、查看當前狀態

1.1 查看當前commit內容的狀態

git status

1.2 查看commit的日誌

git log  #查看當前的commit內容
git reflog  #查看歷史的commit內容

1.3 查看commit的具體修改內容

$ git diff readme.txt 
diff --git a/readme.txt b/readme.txt
index 46d49bf..9247db6 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-Git is a version control system.
+Git is a distributed version control system.
 Git is free software.

二、修改commit內容

2.1 如果git commit之後發現commit的message出現了錯誤,可以用以下的命令修改最近一次commit的message

git commit --amend

之後會出來一個vim編輯界面,直接修改commit message之後,:wq!退出即可

2.2 如果要修改的最近多次的commit message的話按如下的命令進行修改

git rebase -i HEAD~3

命令表示要修改最近3次commit的信息,輸入之後會出來如下的信息

 pick:*******

 pick:*******

 pick:*******

按鍵盤i然後將pick改爲edit,之後就可以保存退出,然後通過命令

git commit --amend

來切換進行commit message的修改,在全部修改完成之後,輸入下面的命令完成修改

git rebase --continue

三、撤銷版本修改

注意git在進行版本控制時,本質上是文件指針的移動

3.1 徹底刪除最近的幾次commit

git reset --hard 版本號#版本號可以用git log查看


git reset --hard HEAD^ #回退到上一個版本
git reset --hard HEAD~n #回退到n個版本前

注意這條命令會導致當前內容回到你指定的版本,這時你的工作區就是你所指定的版本的內容

另外如果你通過上面的命令進行撤回之後發現其實修改是可以的,想要變回去,也可以通過git reset --hard +版本號來實現

3.2 撤回commit但是保留更改

如果你在還沒改完文件就commit,發現還需要加幾個字在文件中,就不可以用3.1的命令,因爲他會導致你之前做的修改全部丟失,如果你希望撤銷commit,但把最近這一次commit的內容放到工作區,則可以通過以下的命令

git reset --soft 版本號#撤銷後放到你的工作區
git reset --mixed 版本號#撤銷後放到你的暫存區

注:如果你當前commit了一個版本,版本號爲7ai923h,你上一次commit了一個版本,版本號爲899hslfls,如果你要撤銷最近一次的commit,但是保留做好的修改到工作區,你的命令應該是git reset --soft 899hslfls.

3.3 撤回工作區的修改

如果你修改了當前文件,但是還沒有將改文件添加到暫存區,也就是還沒有執行git add 文件,可以用如下的命令修改

git checkout -- 文件名

命令git checkout -- readme.txt意思就是,把readme.txt文件在工作區的修改全部撤銷,這裏有兩種情況:

一種是readme.txt自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;

一種是readme.txt已經添加到暫存區後,又作了修改,現在,撤銷修改就回到添加到暫存區後的狀態。

總之,就是讓這個文件回到最近一次git commitgit add時的狀態。

3.4 撤銷暫存區的修改

如果你修改了並且添加到暫存區但是還沒有commit,那麼可以用以下的命令將暫存區的修改取出,並放到你的工作區

git reset HEAD 文件名

結合上面的git reset --mixed 文件名,再利用git reset HEAD 文件名,就實現了git reset --soft的效果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章