前言
前面已經寫了一部分,下面接著來。
直接打開之前的工作空間,執行:
1.工作區和緩存區。新建一個文件b.rtf放入上一章的gitlearn目錄下,gitlearn就相當于工作區。執行:
這時提示b.rtf從未被添加過。
執行:
$ git add b.rtf
這時b.rtf會從工作區加入暫存區。執行:
$ git commit -m "xxx"
一次性把暫存區所有的修改提交到分支。
2.管理修改。
git管理的不是文件,而是修改,每次修改后需要 add 再 commit ,如果沒有add ,直接commit ,則該修改沒有提交。
第一次修改->
git add
->第二次修改->git add
->git commit
。或者
第一次修改->第二次修改->git add
->git commit
3.撤銷工作區或暫存區修改。
$git checkout -- b.rtf
回退到最近一次修改前的狀態。
4.撤銷暫存區的修改。
$ git reset HEAD file
如果從暫存區提交到了版本庫,就用上一節的版本回退。
小結
git checkout -- file
丟棄工作區的修改
git reset HEAD file
丟棄暫存區的修改
如果提交到了版本庫,就進行版本回退
5.一般情況直接在目錄里刪掉或者執行:
$ rm b.rtf
這時候git知道你刪除了文件,因此工作區和版本庫就不一致了,git status命令會告訴你哪些文件被刪除了。
* 如果確實要刪除該文件,執行:
$ git rm b.rtf
* 如果是誤刪的文件,因為版本庫中還有,執行:
$ git checkout -- b.rtf
與撤銷修改一致
小結
$ git rm b.rtf 刪除文件
$ git checkout -- file 撤銷刪除
6.刪除git倉庫中的文件,但保留工作區的。
我們想把文件從 Git 倉庫中刪除(亦即從暫存區域移除),但仍然希望保留在當前工作目錄中。換句話說,僅是從跟蹤清單中刪除。比如一些大型日志文件或者一堆 .a 編譯文件,不小心納入倉庫后,要移除跟蹤但不刪除文件,以便稍后在 .gitignore 文件中補上,用 --cached 選項即可:
$ git rm --cached b.rtf
7.修改文件名稱
如果在 Git 中重命名了某個文件,倉庫中存儲的元數據并不會體現出這是一次改名操作,要執行:
$ git mv 文件名 文件名
小結
$ git rm --cached b.rtf 刪除git倉庫中的文件,但保留 工作區的
$ git mv 文件名 文件名 修改文件名稱附加:
$ git log -p -2 查看最近2次的歷史記錄
$ git log --stat 查看簡要的增改行數統計
$ git log --pretty=oneline 將每個提交放在一行顯示
$ git log --pretty=format:"%h -%an, %ar : %s" 自定義顯示格式
列出常用的格式占位符寫法及其代表的意義