基本用法
基本配置信息
git config --global user.name "name"
盯捌,設(shè)置 username
git config --global user.email "email"
,設(shè)置 email
帶引號是配置,不帶是查看
Git 的三個區(qū)域
- 工作區(qū)域
- 暫存區(qū)域
- Git 倉庫
Git 的工作流程
- 在工作目錄中添加和修改文件
- 將需要修改的文件放入暫存區(qū)域
- 將暫存區(qū)域的文件提交到 Git 倉庫
Git 管理的文件的三種狀態(tài)
- 已修改 ( modified )
- 已暫存 ( staged )
- 已提交 ( committed )
Git 常用指令
-
git init
初始化 git -
git add README.txt
或者git add .
,添加工作文件到暫存區(qū)域 -
git commit -m "內(nèi)容"
击吱,提交暫存區(qū)域文件到 git 倉庫 -
git status
篮条,查看狀態(tài),一般用來查看暫存區(qū)域的文件狀態(tài) -
git log
性宏,查看日志 -
git rm 文件
,刪除文件- 該命令這是刪除工作區(qū)域和暫存區(qū)域的文件,如果刪除倉庫區(qū)域的文件鱼炒,可以結(jié)合
git reset --soft HEAD~
衔沼,然后重新add
和commit
即可 -
git rm -f 文件
,強制刪除文件 -
git rm --cached 文件
昔瞧,刪除暫存區(qū)域文件
- 該命令這是刪除工作區(qū)域和暫存區(qū)域的文件,如果刪除倉庫區(qū)域的文件鱼炒,可以結(jié)合
-
git mv 舊文件名 新文件名
指蚁,修改文件名 -
git commit --amend
,修改最后一次快照自晰,點擊 i 可以修改文件凝化,如果想退出就:q!
再回車
比較 diff
-
git diff
,比較工作區(qū)域和暫存區(qū)域 -
git diff 快照id1 快照id2
酬荞,比較兩個歷史快照 -
git diff 快照id1
搓劫,比較當(dāng)前工作區(qū)域和倉庫快照
reset
的用法
-
git reset HEAD
,當(dāng)調(diào)用了add
命令后混巧,想要恢復(fù)到add
之前的狀態(tài)枪向,可以調(diào)用這個命令 -
git reset HEAD~
- 移動 HEAD 的指向,將其指向上一個快照(本來指向最新的 log咧党,即指向倒數(shù)第二個)
- 將 HEAD 移動后指向的快照回滾到暫存區(qū)域
- 相當(dāng)于
git reset --mixed HEAD~
秘蛔,默認(rèn)情況 - 影響倉庫區(qū)域和暫存區(qū)域
-
git reset --soft HEAD~
- 和
git reset HEAD~
的區(qū)別在于,不會修改暫存區(qū)域的內(nèi)容,暫存區(qū)域依舊是上一次提交的內(nèi)容 - 作用的是撤銷一次錯誤提交的命令
- 只影響倉庫區(qū)域
- 和
-
git reset --hard HEAD~
- 和
git reset HEAD~
的區(qū)別在于深员,還會將上一個快照的暫存區(qū)域的文件還原到工作目錄 - 影響倉庫區(qū)域负蠕、暫存區(qū)域和工作區(qū)域
- 和
-
回滾到特定的快照,HEAD 后面加上
hash
值(即 log 日志 的唯一標(biāo)志) -
回滾個別文件
git reset 版本快照 文件名/路徑
-
往前滾倦畅,
git reset 快照id
遮糖,這里也是有--mixed
、--soft
和--hard
的區(qū)分
分支用法
不同分支有自己的快照倉庫區(qū)域
-
git branch feature
叠赐,創(chuàng)建分支 -
git branch
欲账,查看分支 -
git checkout feature
,切換分支 -
git log --decorate
燎悍,查看帶有分支的 log -
git checkout -b feature2
敬惦,快速創(chuàng)建并切換 feature2 分支 -
git branch -d feature
,刪除分支
分支合并
git merge feature
谈山,把 feature
分支合并到 master
(當(dāng)前) 分支上
合并以后一般會發(fā)生沖突,就去文件中修改
checkout
的用法總結(jié)
-
git checkout -- <file>
宏怔,當(dāng)修改文件后但沒有add
奏路,調(diào)用這個命令可以根據(jù)暫存區(qū)域拷貝文件到工作區(qū)域 -
git checkout HEAD~ README.md
,調(diào)用這個命令可以根據(jù)歷史快照拷貝上一個快照的文件到暫存區(qū)域和工作區(qū)域 - 切換分支:
git checkout feature
引用小甲魚前輩的分支圖
image