git 常用操作圖示
git add 添加文件至?xí)捍鎱^(qū)
添加1個或多個文件到暫存區(qū)
git add [file1] [file2] [file3] ...
添加目錄到暫存區(qū)稀蟋,包含子目錄
git add [dir]
添加當(dāng)前目錄下所有文件到暫存區(qū)
git add .
git status 查看文件修改狀態(tài)
用于查看上次提交之后估盘,再次修改的文件一般采用git status -s
獲得簡短結(jié)果缴淋。下圖中的M表示提交之后封锉,又進行了修改。
git diff 比較文件操作前后不同
比較工作區(qū)與暫存區(qū)的差異吞歼,顯示寫入暫存區(qū)與已經(jīng)修改尚未寫入暫存區(qū)的文件漠魏。
-
git diff [file]
展示工作區(qū)和暫存區(qū)的修改內(nèi)容
git diff --cached
展示暫存區(qū)文件與上一次提交到本地倉庫文件的區(qū)別(即文件修改之后邢羔,add提交到暫存區(qū)嚼酝,和上一次commit提交到本地倉庫比較)
git commit 提交
git commit -m '備注'
把暫存區(qū)的內(nèi)容提交到本地倉庫浮还。
git commit [file1] [file2]... -m '備注'
提交暫存區(qū)的指定文件到本地倉庫。
git commit -a
-a參數(shù)革半,修改之后文件無需add碑定,直接提交流码。
git reset 回退版本
HEAD //當(dāng)前版本
HEAD^ //上一版本
HEAD^^ //上上版本
以此類推
等價于
HEAD~0 當(dāng)前版本
HEAD~1 上一版本
HEAD^2 上上版本
HEAD^3 上上上版本
git reset [--mixed | --soft | --hard] HEAD
默認采用mixed又官,用于重置暫存區(qū)與上一次提交一致,工作區(qū)保持不變漫试。
git reset HEAD^ // 回退所有到上一次提交版本
git reset HEAD^ Hello.java // 回退指定文件至上一版本
git rest d27e54f67d005f8c6172d146f65bd2e6d62a08b4 // 回退到指定版本六敬,此時為上一版本id
回退指定版本,需要查看版本驾荣,git log
soft外构,用于回退至指定版本git reset --soft HEAD
hard普泡,撤銷工作區(qū)中所有未提交的修改內(nèi)容,將暫存區(qū)與工作區(qū)都回到上一次版本审编,并刪除之前的所有信息提交撼班。謹(jǐn)慎使用hard參數(shù),他會刪除掉之前的所有提交信息垒酬。
初始狀態(tài)
A--B--C--D
(HEAD)
hard reset之后
git reset --hard B
該操作把 working, index, HEAD都強行置為B砰嘁,狀態(tài)如下
A--B
(HEAD)
soft reset之后
A --- B --- C --- D
(HEAD)
git checkout -b ttt B
git reset --soft D
然后 commit 得到
ttt: A --- B --- C --- D --- B'
(HEAD)
把這個branch推到repo的master
git push origin HEAD:master 或者
git push origin ttt:master 都行
完事之后刪掉這個臨時的ttt branch即可
git rm
刪除工作區(qū)與暫存區(qū)文件git rm [file]
僅在暫存區(qū)刪除文件git rm --cached [file]
git mv
git mv [file] [newfile]
用于移動或重命名文件/目錄/軟連接