說明:
把這個目錄變成Git能夠管理的倉庫
示例:
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
2. git add <file>
說明:
提交全部改動到暫存區
參數:
-A 提交全部
3. git commit
說明:
提交全部暫存區改動至當前分支下
參數:
-m "提交的註釋內容"
-a add全部修改到暫存區後,再作commit操做,注意不包括新增長文件。
示例:
git commit -a -m "提交BUS路由尋址重構"
4. git status
說明:
查看當前狀態
5. git diff
說明:
顯示工做區與提交區的不一樣,兩個文件的不一樣等。
參數:
git diff <某個版本號> <某個版本號> <file> 對比兩人個版本號的不一樣
6. git log
說明:
命令顯示從最近到最遠的提交日誌,
參數:
--pretty=oneline 表示一行顯示日誌
7. git reset
說明:
把當前版本回退,也能夠把暫存區的修改回退到工做區。
參數:
--hard <commit id>
特別說明:
HEAD 表示當前分支下當前版本,HEAD^ 表示上一版本,HEAD^^ 表示上上版本,HEAD~10 表示向上第10個版本
8. git reflog
說明:查看命令歷史,能夠查看回退後的將來版本,
9. git checkout -- <file>
說明:把修改撤銷回到最近一次git commit或git add時的狀態。注意:--表示撤銷,不帶--表示建立一個新分支的命令
示例:
場景1:當你改亂了工做區某個文件的內容,想直接丟棄工做區的修改時,用命令git checkout -- file。
場景2:當你不但改亂了工做區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD file,就回到了場景1,第二步按場景1操做。
10. git rm
說明:
從版本庫中刪除該文件,使用git rm刪掉,再用git commit
11. 建立ssh-key
示例:
$ ssh-keygen -t rsa -C "youremail@example.com"
12. git remote
說明:
與遠程服務器操做,無任何參數時,查看遠程庫列表
參數:
add <遠程名稱,如origin> <ssh:git,遠程地址> 本地關聯遠程的庫
示例:
git remote add origin git@server-name:path/repo-name.git
13. git push
說明:
提交修改到遠程服務器
參數:
-u 本地與服務器關聯後,第一次提交,須要加上-u參數
<遠程名稱> <分支名稱> 按遠程地址和分支名稱提交
示例:
git push -u origin master
第一次推送master分支的全部內容,此後,使用命令git push origin master推送最新修改
14. git clone
說明:
遠程庫的克隆
15. git checkout -b <新分支名稱> <關聯到遠程分支:origin/dev>
說明:
建立並切換到<新分支名稱>
示例:
git checkout -b dev
至關於下面兩條命令
git branch dev
git checkout dev
16. git branch
說明:
列出全部分支,當前分支前會標記一個*
參數:
<新分支名稱> 建立新分支
-d <分支名稱> 刪除分支
-D <分支名稱> 強制刪除分支,放棄修改
--set-upstream-to <本地分支:dev> <遠程分支:origin/dev> 把本地分支關聯到遠程分支
17. git checkout <分支>
說明:
切換分支
18. git merge <被合併分支>
說明:
分支合併,把<被合併分支>合併到當前分支來,默認使用ff模式
特別說明:
Fast-forward合併是「快進模式」,也就是直接把master指向dev的當前提交,因此合併速度很是快。 這種模式下,刪除分支後,會丟掉分支信息。即沒法看到分支的log信息等。
--no-ff方式,是指強制禁用Fast-forward方式,這樣分支信息也會被合併到當前分支。
示例:
git merge --no-ff -m "merge with no-ff" dev
19. 衝突解決--conflict
說明:
分支合併時,發生的衝突,git沒法執行「快速合併」,只能試圖把各自的修改合併起來。若自動合併發生了衝突,必須手動解決衝突後,再提交,再合併。
20. git stash
說明:
把當前工做現場」儲藏「起來。通常用於你想跳轉到其餘分支,但又不想提交當前分支的代碼。
參數:
list 查看當前分支下的stash的列表
apply 恢復
drop 刪除
pop 恢復的同時,把stash內容也刪除了
示例:
git stash pop
提取最近一個stash,並清除當條stash
git stash pop stash@{0}
提取stash@{0},並清除
21. git tag
說明:
標籤操做,不帶參數時,可查看當前分支的全部標籤列表
參數:
<tagname> 對當前版本打上標籤
<tagname> <commit id> 給<commit id>的歷史提交操做打上標籤
-d <tagname> 刪除標籤
22. git show
說明:
顯示最新一次提交的詳情
參數:
<tagname> 查看標籤信息
23. git push <遠程名稱> <tagname>
說明:
把標籤<tagname>推送到<遠程名稱>
參數:
--tags 一次性推送所有還沒有推送到遠程的標籤
<遠程名稱> :refs/tags/<tagname> 刪除一個遠程標籤
示例:
git push origin --tags
推送全部未推送的標籤
git push origin :refs/tags/<tagname>
刪除一個遠程標籤git