git 命令小結

1. git init 

    說明:
        把這個目錄變成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

相關文章
相關標籤/搜索