目錄:
1袄简、Git工作區(qū)馏慨、暫存區(qū)、分支的區(qū)別
2滨达、Git版本回退和撤銷修改
3得滤、Git刪除文件
4陨献、vim說明
5、總結(jié)
進(jìn)擊的小仙
1. Git工作區(qū)懂更、暫存區(qū)湿故、分支的區(qū)別
1488360764(1).png
在每天吃一點Androidの二中,我們在電腦上創(chuàng)建了一個名為Git_Repo的文件夾膜蛔,并在里面啟動bash坛猪,通過
git init
初始化了一個空的版本庫,git自動生成了一個隱藏的.git文件夾皂股。
-
.git
文件夾就是版本庫墅茉,里面存放了很多的東西。 -
Git_Repo就是工作區(qū)呜呐,我們在里面新建工程就斤,或者新增文件,如
readme.md
; - 然后我們在bash中add添加后蘑辑,工程或文件就被加入到了.git版本庫中的stage暫存區(qū);
- 繼而再commit提交后洋机,工程或者文件就被提交到了master分支。
2. Git版本回退和撤銷修改
2.1. 版本回退
查看版本日志:
git log
查看簡化的版本日志:
git log --pretty=oneline
Paste_Image.png
如上圖洋魂,黃色一長串“bbcd...b070”是commit id绷旗,也就是版本號,使用SHA1計算出來的id副砍,這個id在版本回退中扮演很重要的角色衔肢。后面的白色字符串,如"rm readme2.md"是版本修改說明豁翎。
回退到上個版本:
git reset --hard HEAD^
回退到上上個版本:
git reset --hard HEAD^^
回退到十個版本:
git reset --hard HEAD~10
回退到指定版本號的版本:如版本號開頭部分為bbcd...
git reset --hard HEAD bbcd
另一個版本日志的查看方式:
git reflog
Paste_Image.png
2.2. 撤銷修改
- 撤銷工作區(qū)的修改:
git checkout -- file
如果暫存區(qū)有內(nèi)容角骤,那么工作區(qū)撤銷成與暫存區(qū)一樣。
如果暫存區(qū)沒有內(nèi)容心剥,那么工作區(qū)撤銷成與分支一樣邦尊。
- 撤銷暫存區(qū)的修改
git reset HEAD file
撤銷后,暫存區(qū)的內(nèi)容與分支一樣
<a>注意:</a>修改工作區(qū)的readme.md优烧,add添加工作區(qū)內(nèi)容到暫存區(qū)蝉揍,但未commit提交,再次修改工作區(qū)的readme.md內(nèi)容匙隔,不add添加到暫存區(qū)疑苫,也就是說現(xiàn)在工作區(qū)熏版、暫存區(qū)、分支三個位置的readme.md都不同捍掺,此時commit提交撼短,提交的內(nèi)容是暫存區(qū)的,而工作區(qū)第二次修改的readme.md是沒有提交上去的挺勿。
3. Git刪除文件
刪除工作區(qū)的文件:
rm readme2.md
分兩步:一:git rm刪除曲横,二:git commit提交
git rm readme2.md
git commit
撤銷刪除:
git checkout --readme2.md
查看文件內(nèi)容:
cat filename
4. vim說明
vim分為編輯模式和命令模式兩種。
命令行模式下的命令:
dd
:刪除行
i
或a
或o
:進(jìn)入編輯模式
數(shù)字n+d
:刪除當(dāng)前行開始n行
u
:回退
p
:d
刪除后不瓶,可以用p
粘貼進(jìn)入命令模式:
esc
5. 總結(jié)
區(qū)別好工作區(qū)禾嫉、暫存區(qū)和分支
- 情景1:添加并且提交了一個改錯了的文件到分支,要回退到某個歷史版本蚊丐。
#查詢分支的各個歷史提交的版本熙参,根據(jù)版本描述確定要撤回到的版本
git log --pretty=oneline
#或者用這個指令,HEAD前面的一串就是版本號
git log reflog
#根據(jù)版本號輸入版本回退指令麦备,版本號可以不用寫完整
git reset --hard HEAD 版本號
- 情景2:添加了一個改錯了的文件到暫存區(qū)孽椰,但還沒有提交到分支
# 將暫存區(qū)的文件替換成分支里的文件
git reset HEAD file
- 情景3:修改錯了工作區(qū)的文件,要取消修改
git checkout -- filename
- 情景4:刪除分支的文件
git rm filename
git commit