基本操作
1揪垄、初始化
- 自動創(chuàng)建文件夾穷吮,并生成git版本庫
git init 文件夾名稱
2、改動文件添加版本庫
git add welcome.txt
3饥努、提交
// 有改動信息
git ci -m '提交信息'
// 無改動信息(空白提交)
git ci --allow-empty --allow-empty-message -m '提交信息'
// 對本地所有變更的文件執(zhí)行提交操作捡鱼,包括對本地修改文件和刪除的文件,但是不包括未被版本庫跟蹤的文件
git ci -a
4酷愧、修改提交信息
git commit --amend --allow-empty --reset-author
5驾诈、查看log日志
git log --pretty=fuller
// 退出log日志
":" + "q"
6、備份工作區(qū)
git clone 工作區(qū)文件夾名稱 備份的工作區(qū)文件夾
7溶浴、查看暫存區(qū)
git status -s(簡潔方式)
8乍迄、取消工作區(qū)文件修改
git checkout -- 文件名稱
9、查看HEAD指向的目錄樹信息
git ls-tree-l HEAD
結(jié)果
100644(文件屬性rw-r--r--) blob(Git對象庫中一個blob對象) b493a7f1744e9b001a540332a701c64a1df2bbab(該文件在對象庫中對應ID) 18(文件大小) welcome.txt(文件名)
10士败、之前某個版本標識
HEAD:表示當前最新提交點
HEAD^:表示上一個提交點
HEAD^^:表示上上一個提交點
……
HEAD-100:表示往上100個提交點
11闯两、切換不同提交點版本
git reset --hard 標識
(標識:可以是HEAD或者文件對象庫中的ID前幾位,通常前6谅将、7位左右)
git reset --hard HEAD^
git reset --hard b493a7
git reset --hard 上一版本HEAD^
git reset --hard 下一版本(標識)
12漾狼、查看所有的提交記錄
要想確定要回退的版本,通過git log
查看歷史
要想重返未來的版本饥臂,通過git reflog
查看未來版本
git reflog
13逊躁、添加遠端倉庫
git remote add origin(倉庫別名) git@github.com:GJBlog/Notes.git(倉庫地址)
13、查看遠端倉庫地址
git remote -v
14隅熙、刪除遠端庫
git remote rm origin(倉庫別名)
13志衣、本地倉庫與遠端倉庫關(guān)聯(lián)
git remote add origin git@github.com:GJBlog/LearnGit.git
15、推送遠端倉庫
git push (-u) origin master
origin:遠端倉庫名稱
master:遠端倉庫分支
-u:關(guān)聯(lián)本地和遠端倉庫后第一次推送
16猛们、切換分支
git checkout 待切換分支名
17念脯、撤銷暫存區(qū)修改,內(nèi)容重新放回工作區(qū)
git reset HEAD 文件名
18弯淘、從版本庫中刪除文件
git rm 文件名
19绿店、創(chuàng)建新分支
git branch 分支名
20、切換分支
git checkout 分支名
21、創(chuàng)建新分支并切換到當前分支
git checkout -b 分支名
22假勿、查看所有分支
git branch
23借嗽、刪除分支
git branch (-d)(-D) 分支名
-D:強行刪除
24、默認合并分支
git merge (--no-ff) dev(分支名)
合并dev(分支名)到當前分支
25转培、禁用Fast forward模式合并分支
--no--ff:表示禁用Fast forward
模式
git merge --no-ff -m "merge with no-ff" dev
25恶导、查看分支合并圖
完整版:git log --graph
簡化版:git log --graph --pretty=oneline --abbrev-commit
26、貯藏當前文件
git stash
將當前工作區(qū)中所有改動的內(nèi)容都貯藏
git stash list
展示已經(jīng)貯藏的所有文件
27浸须、恢復貯藏內(nèi)容
git stash apply stash@{0}
恢復貯藏內(nèi)容惨寿,但是在貯藏列表中并不會刪除
git stash pop
恢復貯藏內(nèi)容,并且在貯藏列表中刪除
28删窒、刪除貯藏內(nèi)容
git stash drop
刪除單個貯藏內(nèi)容
git stash clear
清空整個貯藏列表
注意點
若文件僅僅在工作區(qū)修改裂垦,未提交到暫存區(qū),則直接使用
git checkout -- 文件名
可以撤銷修改肌索。若文件不僅在工作區(qū)修改蕉拢,還提交到暫存區(qū)中,但是未
git commit
之前诚亚,則需要先使用git reset HEAD 文件名
將修改內(nèi)容撤回到工作區(qū)中晕换,接著再使用git checkout -- 文件名
將工作區(qū)中的修改丟棄,恢復到工作區(qū)改動之前站宗。當文件提交到版本庫中闸准,通過
git checkout
只能恢復文件到最新版本,會丟失最近一次提交后你的修改的內(nèi)容份乒。通常情況下恕汇,合并分支時腕唧,如果可能Git會默認采用
Fast forward
模式或辖,在這種模式下當刪除分支后,會丟掉分支信息枣接。如果強制禁用Fast forward
模式颂暇,Git會在merge時生成一個新的commit提交,這樣在分支歷史中就可以看到分支信息。