Git基本命令學習筆記


今天學習Git這個版本管理工具,學習地址:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
現將筆記整理髮布:


git命令總結

----------基礎-------------------
1 $ git config --global user.name "fflin" //關聯用戶名
2 $ git config --global user.email "[email protected]" //關聯郵箱
3 $ mkdir fflindemo //創建版本庫
4 $ cd fflindemo    //進入版本庫
5 $ pwd            //顯示當前目錄
6 $ git init    //初始化倉庫
    顯示 Initialized empty Git repository in C:/Users/Administrator/fflindemo/.git/
        其中.git是Git用來跟蹤管理版本庫的,不要手動修改

7 $ git add readme.txt 把文件放入倉庫目錄裏,使用這個命令告訴Git,實際上是把文件放到了Git的暫存區(stage)
8 $ git commit -m "add a readme file" 把文件提交到Git
        提交成功:
        [master (root-commit) f937b08] add a readme file
         1 file changed, 0 insertions(+), 0 deletions(-)
         create mode 100644 readme.txt
9 $ git status 查看倉庫當前狀態
        On branch master
        Changes not staged for commit:
          (use "git add <file>..." to update what will be committed)
          (use "git checkout -- <file>..." to discard changes in working directory)

                modified:   readme.txt

            no changes added to commit (use "git add" and/or "git commit -a")

10 $ git diff readme.txt  查看被修改的文件都改了什麼內容

        $ git diff readme.txt
        diff --git a/readme.txt b/readme.txt
        index e69de29..8993a63 100644
        --- a/readme.txt
        +++ b/readme.txt
        @@ -0,0 +1 @@
        +hello Git
        
11 $ git log  查看提交的歷史記錄

        commit b469255efc0c5864c483af7701bfa2f4dbae97ac
        Author: fflin <[email protected]>
        Date:   Wed Mar 15 09:54:08 2017 +0800

            文件增加一行文本

        commit f937b08f902c9b389c4063a56cd4b16c3b9cd2a2
        Author: fflin <[email protected]>
        Date:   Wed Mar 15 09:47:09 2017 +0800

            add a readme file
            
12 $ git log --pretty=oneline  //以一行的形式來查看git提交日誌

        b469255efc0c5864c483af7701bfa2f4dbae97ac 文件增加一行文本
        f937b08f902c9b389c4063a56cd4b16c3b9cd2a2 add a readme file
        
13 $ git reset --hard HEAD  //回退到上一個版本
        HEAD is now at f937b08 add a readme file
        上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成HEAD~100。
        
14 $ git reflog  顯示每一次指令
        b469255 HEAD@{0}: reset: moving to b469255
        f937b08 HEAD@{1}: reset: moving to HEAD
        f937b08 HEAD@{2}: reset: moving to HEAD^
        b469255 HEAD@{3}: commit: 文件增加一行文本
        f937b08 HEAD@{4}: commit (initial): add a readme file
        
15 $ git checkout -- readme.txt  可以丟棄對工作區的修改,刪除掉工作區文件新添加的部分,注意這裏是“--”
16 $ git reset HEAD readme.txt   可以撤銷對暫存區的修改,撤銷已經add到暫存區的文件,使文件回到工作區,然後使用第15條指令,撤銷工作區的修改

17 $ rm test.txt  刪除文件
18 $ git rm tesr.txt  確定刪除文件
        rm 'tesr.txt'
19 $ git checkout -- test.txt   撤銷刪除文件

20 $ ssh-keygen -t rsa -C "[email protected]"  創建SSH Key,創建完成會在“C:\Users\Administrator\.ssh”目錄下生成兩個文件,一個公鑰一個私鑰

-------------------------分支---------------------------------

21 $ git checkout -b dev  創建dev分支,然後切換到該分支
        Switched to a new branch 'dev'
        
   $ git branch dev 創建分支
   $ git checkout dev 切換分支
        
22 $ git branch  列出所有分支,在當前分支前加了"*"
    * dev
      master
23     在當前分支(dev)上修改了readme.txt文本內容並執行add 和 commit的操作後
    $ git checkout master  切換到master分支,再打開文件夾查看readme.txt,發現修改後的內容並沒有出現

24 $ git merge dev 合併指定分支到當前分支,合併後,再查看readme.txt文件,發現已經出現了剛纔修改的內容
25 $ git branch -d dev 合併後內容都再當前分支了,就可以刪除dev分支

26 分支衝突強行合併時,文件內容
        hello Git
        添加log
        添加了dev 分支
        <<<<<<< HEAD
        添加了feature1分支,master
        =======
        添加了feature分支
        >>>>>>> feature1
    git以<<<<<<<<  ======  >>>>>>>>>>來標記不同的分支內容,
    修改後,執行add和commit的操作
27 $ git log --graph --pretty=oneline --abbrev-commit  查看分支的合併情況

28 $ git stash  開發過程中會遇到一個功能未完善或者某個邏輯未寫完時,有需要處理某個Bug,這時用stash命令把當前的工作區儲藏起來,修復完Bug後再繼續工作
        Saved working directory and index state WIP on master: dbfe060 處理了衝突
        HEAD is now at dbfe060 處理了衝突

        Administrator@PC-179 MINGW64 ~/fflinDemo (master)
        $ git status
        On branch master
        nothing to commit, working tree clean
        
29 $ git stash pop 恢復儲藏的文件,回到工作現場
        On branch master
        Changes not staged for commit:
          (use "git add <file>..." to update what will be committed)
          (use "git checkout -- <file>..." to discard changes in working directory)

                modified:   readme.txt

        no changes added to commit (use "git add" and/or "git commit -a")
        Dropped refs/stash@{0} (0733938ec2cd86631700661319a64a298874dd9a)

-------------遠程-----------------

30 $ git remote -v 查看遠程庫信息
        origin  [email protected]/fflinDemo.git (fetch)
        origin  [email protected]/fflinDemo.git (push)
        
        
--------------標籤----------------------.

31 $ git tag v1.0  創建標籤
32 $ git tag 查看所有標籤
33 $ git tag v0.9 a6641b5  爲未打標籤的提交增加標籤
34 $ git tag -a v0.1 -m "第一個文件" f937b08  創建帶有說明的標籤,-a代表標籤名,-m代表說明文本
35 $ git show v0.1  展示帶有說明的標籤的提交
            tag v0.1
            Tagger: fflin <[email protected]>
            Date:   Wed Mar 15 14:10:09 2017 +0800

            第一個文件

            commit f937b08f902c9b389c4063a56cd4b16c3b9cd2a2
            Author: fflin <[email protected]>
            Date:   Wed Mar 15 09:47:09 2017 +0800

                add a readme file

            diff --git a/readme.txt b/readme.txt
            new file mode 100644
            index 0000000..e69de29
36 $ git tag -d v0.9  刪除錯誤標籤
        Deleted tag 'v0.9' (was a6641b5)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章