本文來源為
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/ 筑公,僅是學(xué)習(xí)之后雳窟,進(jìn)行簡單總結(jié),需要的朋友可進(jìn)行系列學(xué)習(xí)匣屡。
- 顯示當(dāng)前目錄
pwd
- 初始化一個(gè)git倉庫
git init
- 添加文件到git倉庫
- ①
git add <file>
添加文件 - ②
git commit -m "提交說明"
-m為可選封救,后跟本次提交的說明,但建議必填捣作,這樣之后查看時(shí)誉结,可以清楚的知曉本次都做了什么。 - 查看倉庫當(dāng)前的狀態(tài)
git status
- 查看different
git diff
- 記錄每一個(gè)命令(命令歷史)
git reflog
- 顯示從最近到最遠(yuǎn)的提交日志(提交歷史) git log
- 使用
git log --pretty=oneline
可簡化log輸出信息
- 使用
- 回退
- ① 返回上一個(gè)版本
git reset --hard HEAD^
- ② 返回版本號(hào)為3628164的版本
git reset --hard 3628164
券躁,版本號(hào)可以用git log --pretty=oneline
來查看惩坑。
- ① 返回上一個(gè)版本
Git中 ,
HEAD
表示當(dāng)前版本掉盅,上一個(gè)版本是HEAD^
,上上一個(gè)版本是HEAD^^
以舒,若版本過早趾痘,可簡寫HEAD~100
。
- 將某個(gè)文件(file)在工作區(qū)中的修改全撤銷
git checkout -- file
- ① 若file 自修改后還沒被放到暫存區(qū)蔓钟,現(xiàn)撤銷就和版本庫一樣永票。
- ② 若file已經(jīng)添加到暫存區(qū),又做了修改奋刽,現(xiàn)撤銷修改就回到添加暫存區(qū)后的狀態(tài)瓦侮。
- 將暫存區(qū)的修改撤銷重新放回到工作區(qū)
git reset HEAD file
- 關(guān)聯(lián)一個(gè)遠(yuǎn)程庫,使用命令
git remote add origin git倉庫地址
佣谐,關(guān)聯(lián)后,使用命令git push -u origin master
第一次推動(dòng)master分支的所有內(nèi)容方妖。 - 由于遠(yuǎn)程庫是空的狭魂,第一次推送
master
分支時(shí),加上-u
參數(shù)党觅,git不但會(huì)把master
分支內(nèi)容推送到遠(yuǎn)程新的master
分支雌澄,還會(huì)把本地的master
分支和遠(yuǎn)程的master
分支關(guān)聯(lián)起來,在以后的推送或拉取時(shí)可簡化命令杯瞻。
此后镐牺,每次修改提交,就可以使用命令git push origin master
推送最新修改魁莉。 - 將某個(gè)遠(yuǎn)程庫下載至本地睬涧。
git clone 遠(yuǎn)程倉庫
- git支持多種協(xié)議,包括
https
和ssh
,但通過ssh
支持的遠(yuǎn)程git 協(xié)議速度最快旗唁。 - 創(chuàng)建dev分之并切換
git checkout -b dev
相當(dāng)于以下兩個(gè)操作 - ①
git branch dev
創(chuàng)建分支 - ②
git checkout dev
切換分支 - 查看當(dāng)前分支
git branch
(列出所有分支畦浓,當(dāng)前分支前有一個(gè)*
) - 合并指定分支到當(dāng)前分支
git merge 指定分支名稱
- 刪除指定分支(dev)
git branch -d dev
- 查看分支合并圖
git logg --graph
-
git logg --graph --pretty=oneline --abbrev-commit
簡化輸出 - 合并分支時(shí)禁用fast forword 模式
git merge --no-ff -m "提交說明" dev
通常,合并分支時(shí)检疫,如果可能讶请,Git會(huì)用Fast forward模式,但這種模式下屎媳,刪除分支后夺溢,會(huì)丟掉分支信息。
如果要強(qiáng)制禁用Fast forward模式烛谊,Git就會(huì)在merge時(shí)生成一個(gè)新的commit风响,這樣,從分支歷史上就可以看出分支信息晒来。
- 假設(shè)一個(gè)工作場景:你現(xiàn)在在一個(gè)分支上工作钞诡,但現(xiàn)在有一個(gè)緊急任務(wù)郑现,需要在主分支上修改Bug,但你并不想提交目前的工作至進(jìn)度,此時(shí)荧降,就需要臨時(shí)的“儲(chǔ)藏”當(dāng)前的工作現(xiàn)場接箫,切換至主分支(或其它任何分支)進(jìn)行緊急任務(wù),任務(wù)完成后朵诫,恢復(fù)當(dāng)前工作現(xiàn)場辛友。
- “儲(chǔ)藏”當(dāng)前工作現(xiàn)場
git stash
- 查看 “儲(chǔ)藏”
git stash list
- 恢復(fù)并刪除stash內(nèi)容
git stash pop
- 恢復(fù)但不刪除stash內(nèi)容
git stash apply
- 刪除stash
git stash drop