git常用命令

git命令網上有很多介紹,記住常用80個左右命令基本夠用了,使用時常發現命令忘記。本文對自己常用的幾個命令做下整理,供需要時查閱。

【初始配置】

# git config --list                                                                // 查看配置信息

# git config --global user.name "name"                            // 配置個人的用戶名稱

# git config --global user.email [email protected]      // 配置電子郵件地址

# git config user.name                                                      // 查閱某個環境變量的設定,例如user.name

【git庫創建】

1. git init                                            // 創建本地git庫

2. git init --bare <repo>                     // 本地創建一個名爲repo的git源文件夾。該文件夾作爲本地git源,

                                                         // 初始化後包含git源子文件夾,git clone下來沒有源碼。

3. git clone <XXX.git> <localrepo>   // 下載git庫到本地localrepo(默認master分支)

    git clone <XXX.git> -b XX <localrepo>   // 下載遠端XX分支到本地

4. git pull origin master                      //從遠程拉取最新版本到本地,自動合併merge

5. git fetchorigin master           //從遠程拉取最新版本到本地,不會自動merge。手動merge(git merge orgin/master)

6. git remote add upstream <原作者項目的URL>  //在本地添加遠端upstream分支,用於將個人分支和遠端分支內容保持一致,避免pr時衝突

【查看修改記錄】

1. git status                     // 查看本地修改的文件名列表

2. git diff                          // 查看本地修改的文件詳細內容

3. git log                          //查看commit log記錄

4. git show <commit id>  // 顯示某次提交的內容

    git show <commit id> --stat  // 顯示某次提交內容修改的文件統計信息

【提交修改】

1. git add <file>                       // 將修改的file文件添加到工作目錄(working directory)

2. git add .                               // 將本地所有修改的文件添加到工作目錄

    git add . -A                          // 將本地所有修改的文件添加到工作目錄(文件/目錄更改名稱場景,

                                               //加-A參數後git status查看會顯示file1-->file2重命令信息,很直觀)

3. git commit  -a -m "XXX"      // 提交本地工作目錄所有修改

    git commit -m “XXX”           // 提交本地工作目錄修改(已先執行git add命令)

4. git push origin master        // 將本地分支修過push到遠端的master分支

5. git rebase <commit id>^ -i  // 重新設置基線。commit多個patch時,若需要修改前面commit的patch內容時,

                                               //需要用rebase,此時後提交的patch內容會自動重新設置基線。

                                              //該命令很常用,-i表示交互式

6. 刪除一些沒有git add的文件:

    git clean參數:  -n 顯示將要刪除的文件和目錄,-f 刪除文件,-df刪除文件和目錄

    # git clean -f                         //刪除文件

    # git clean -df                       // 刪除文件和目錄


【撤銷】

1. git reset --hard <commit ID>   // 恢復到commit ID。commit ID之後的所有修改都會被刪除,修改數據丟失。

                                                    // 操作時需要注意

    git reset <commit ID>             // 恢復到commit ID, commit ID之後的修改不會修改,仍然在本地,可以再次提交


【暫存功能】

1. git stash                             // 臨時保存本地修改至暫存區。保存後,本地修改git diff看不到,默認恢復到上一次pull

2. git stash list                       // 打印本地暫存區棧信息;

3. git stash apply stash@{1}  //將指定版本號爲stash@{1}的工作取出來;

4. git stash pop                      // 將當前分支的最後一次緩存的內容釋放出來,但是剛纔的記錄不存在list中

    git stash apply                   // 將當前分支的最後一次緩存的內容釋放出來,但是剛纔的記錄還存在list中

5. git stash clear                   // 清除暫存區(清除後stash中數據會丟失,操作前確認信息是否均已恢復)


【branch管理】

1. git branch                                     // 查看本地分支

    git branch -v                                 //查看分支的最後修改

2. git branch --remote                      // 查看遠端分支

3. git checkout master                     //切換到主分支

4. git merge xx                                 //合併分支xx到主分支

5. git branch -d xx                            //刪除分支,如果還未合併到master,則會出現不能刪除提示,用-D可以強制刪除

6. git checkout -b  xx                       //建立分支並切換到分支xx

7. git checkout -b 本地分支名 遠程分支名      //基於遠程分支創建本地分支,eg: git checkout -b dev origin/dev

   其中,遠程分支名爲git branch –r所列出的分支名, 一般是諸如“origin/分支名”的樣子。如果本地分支名已經存在, 則不需要“-b”參數。


【生成patch】

1.  git format-patch -1 <commit id>    // 生成指定commit id的一個patch。補丁中含有這個補丁開發者的名字,

                                                          // 在應用補丁時,這個名字會被記錄進版本庫。

2.  git format-patch -s -1                    // 生成最近commit id的一個patch;

     git format-patch -s -N                    // 生成最近commit id的N個patch;

3. git format-patch <commit id 1> <commit id 2>   // 將commit id1 ~ commit id2之間提交生成patch

4. git diff > path                                  // 將本地修改生成patch。該補丁中不包含開發者的名字


【patch合入】

1. git am <XX.patch>                        //合入XX.patch(帶commit id信息,XX.patch中的commit信息也一同合入)

2. git apply <XX.patch> --reject        // 強制合入XX.patch(僅合入XX.patch中的修過內容,commit信息不合入,

                                                         // 需要重新git commit -a -m "XX"重新提交patch)


發佈了6 篇原創文章 · 獲贊 7 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章