本文來源為
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/ ,僅是學習之后,進行簡單總結,需要的朋友可進行系列學習。
- 顯示當前目錄
pwd
- 初始化一個git倉庫
git init
- 添加文件到git倉庫
- ①
git add <file>
添加文件 - ②
git commit -m "提交說明"
-m為可選,后跟本次提交的說明,但建議必填,這樣之后查看時,可以清楚的知曉本次都做了什么。 - 查看倉庫當前的狀態
git status
- 查看different
git diff
- 記錄每一個命令(命令歷史)
git reflog
- 顯示從最近到最遠的提交日志(提交歷史) git log
- 使用
git log --pretty=oneline
可簡化log輸出信息
- 使用
- 回退
- ① 返回上一個版本
git reset --hard HEAD^
- ② 返回版本號為3628164的版本
git reset --hard 3628164
,版本號可以用git log --pretty=oneline
來查看。
- ① 返回上一個版本
Git中 ,
HEAD
表示當前版本,上一個版本是HEAD^
,上上一個版本是HEAD^^
,若版本過早,可簡寫HEAD~100
。
- 將某個文件(file)在工作區中的修改全撤銷
git checkout -- file
- ① 若file 自修改后還沒被放到暫存區,現撤銷就和版本庫一樣。
- ② 若file已經添加到暫存區,又做了修改,現撤銷修改就回到添加暫存區后的狀態。
- 將暫存區的修改撤銷重新放回到工作區
git reset HEAD file
- 關聯一個遠程庫,使用命令
git remote add origin git倉庫地址
,關聯后,使用命令git push -u origin master
第一次推動master分支的所有內容。 - 由于遠程庫是空的,第一次推送
master
分支時,加上-u
參數,git不但會把master
分支內容推送到遠程新的master
分支,還會把本地的master
分支和遠程的master
分支關聯起來,在以后的推送或拉取時可簡化命令。
此后,每次修改提交,就可以使用命令git push origin master
推送最新修改。 - 將某個遠程庫下載至本地。
git clone 遠程倉庫
- git支持多種協議,包括
https
和ssh
,但通過ssh
支持的遠程git 協議速度最快。 - 創建dev分之并切換
git checkout -b dev
相當于以下兩個操作 - ①
git branch dev
創建分支 - ②
git checkout dev
切換分支 - 查看當前分支
git branch
(列出所有分支,當前分支前有一個*
) - 合并指定分支到當前分支
git merge 指定分支名稱
- 刪除指定分支(dev)
git branch -d dev
- 查看分支合并圖
git logg --graph
-
git logg --graph --pretty=oneline --abbrev-commit
簡化輸出 - 合并分支時禁用fast forword 模式
git merge --no-ff -m "提交說明" dev
通常,合并分支時,如果可能,Git會用Fast forward模式,但這種模式下,刪除分支后,會丟掉分支信息。
如果要強制禁用Fast forward模式,Git就會在merge時生成一個新的commit,這樣,從分支歷史上就可以看出分支信息。
- 假設一個工作場景:你現在在一個分支上工作,但現在有一個緊急任務,需要在主分支上修改Bug,但你并不想提交目前的工作至進度,此時,就需要臨時的“儲藏”當前的工作現場,切換至主分支(或其它任何分支)進行緊急任務,任務完成后,恢復當前工作現場。
- “儲藏”當前工作現場
git stash
- 查看 “儲藏”
git stash list
- 恢復并刪除stash內容
git stash pop
- 恢復但不刪除stash內容
git stash apply
- 刪除stash
git stash drop