git 詳解

願文連接git

git詳解

1,git結構

  • 1.1 工做區
    工做區就是寫代碼的地方,若是有新增修改刪除文件都是在工做區發生變化。
    工做區的文件能夠經過git add 命令將文件提交到暫存區。
  • 1.2 暫存區
    暫存區就是用來臨時存儲代碼的一片區域,是已經修改了可是尚未提交,未來能夠提交到本地庫也能夠撤回來。
    經過git commit 命令能夠將暫存區的文件提交到本地倉庫。
  • 1.3 本地庫
    本地庫就是存儲的實實在在的歷史版本
    能夠經過git push命令來將本地庫的文件推送到服務器。

2,git命令

  • 2.1 本地倉庫初始化
    命令:git init
    做用:能夠進行本地倉庫的初始化,初始化事後會在本地生成一個.git的隱藏文件夾裏面的內容以下。
  • 2.2 設置簽名
    形式:github

    用戶名:lc
        email:test@163.com

    做用:緩存

    區分不一樣開發人員的身份

    命令:服務器

    項目級別/倉庫級別,僅在當前本地倉庫範圍內有效。
        git config user.name lc
        git config user.email test@163.com
        
        系統級別:登錄當前操做系統的範圍有效。
        git config --global user.name lc
        git config --global user.email test@qq.com
  • 2.3 狀態查看操做
    命令:
    git status
    做用:
    查看工做區和暫存區的內容
  • 2.4 添加到暫存區操做
    命令:
    git add [file name]
    做用:
    將工做區的「新建/修改」提交到暫存區
  • 2.5 提交操做
    命令:
    git commit -m "msg"
    做用:
    將暫存取的文件提交到本地倉庫
    加上額外參數的做用
    -a
    git commit -a -m "msg" :加上-a參數能夠直接將工做區的內容提交到本地倉庫,不用走暫存區,減小添加操做。
  • 2.5 查看本地倉庫版本記錄
    基本參數
    命令:git log
    做用:顯示最完整的日誌信息
    基本參數
    命令:git reflog
    做用:顯示比較簡潔的git記錄,而且顯示HEAD次數
    加參數 --oneline
    命令: git log --oneline
    做用:將全部的日誌信息顯示在一行
    加參數 --pretty=oneline
    命令: git log --oneline
    做用:將全部的日誌信息顯示在一行
  • 2.6 版本前進後退
    基於索引值操做:能前進能後退
    git reset --hrad [索引值]
    git reset --hard 63b6a76
    使用^符號操做:只能後退
    git reset --hard HEAD^
    這裏有幾個^號就是後退幾步
    使用~符號操做:只能後退
    git rest --hard HEAD~3
    這裏波浪線後面的數值就是後退的步數
  • 2.7 reset的三個參數對比
    一,--soft參數
    僅在本地倉庫移動HEAD指針

    二,--mixed參數
    在本地倉庫移動HEAD指針
    重置緩存區fetch

    三,--hard參數
    在本地倉庫移動HEAD指針
    重置緩存區
    重置工做區spa

  • 2.8 刪除文件並找回
    git reset --hard [指針位置]
    指針位置:歷史版本記錄或者當前
  • 2.9 比較文件差別
    git diff [文件名]操作系統

    將工做區的文件和暫存區的文件進行比較

    git diff [版本記錄] [文件名]指針

    將指定文件和版本記錄裏面的文件進行比較
  • 3.0 建立遠程庫
    在github上面能夠建立一個遠程庫
  • 2.3.1 建立本地遠程庫別名
    git remote add [遠程庫別名] [遠程庫地址]
    能夠給遠程庫在本地取一個別名,可是推送代碼到遠程庫的時候遠程庫的別名會採用origin
  • 2.3.2 查看遠程庫
    使用
    git remote -v
    能夠查看遠程庫
  • 2.3.3 推送文件到遠程庫
    git push [遠程庫別名] [遠程庫分支]
    能夠將文件提交到遠程庫
  • 2.3.4 git 克隆遠程庫
    git clone [遠程庫地址]
    能夠將文件從遠程庫拉取下來,
    拉下來有3個效果:
    1,自動初始化本地庫
    2,獲取完整代碼
    3,獲取遠程庫別名信息
  • 2.3.5 git 遠程倉庫拉取文件
    git pull = fetch + merge
    拉取:git fetch [遠程庫] [遠程分支名]
    合併:git merge [遠程庫/遠程分支名]
  • 2.3.6 git 遠程分支關聯
    使用git在本地新建一個分支後,須要作遠程分支關聯。若是沒有關聯,git會在下面的操做中提示你顯示的添加關聯。

    關聯目的是在執行git pull, git push操做時就不須要指定對應的遠程分支,你只要沒有顯示指定,git pull的時候,就會提示你。rest

    解決方法就是按照提示添加:日誌

    git branch --set-upstream-to=origin/remote_branch your_branch

    其中,origin/remote_branch是你本地分支對應的遠程分支;your_branch是你當前的本地分支。

  • 2.4.0 建立分支
    git branch [分支名]
  • 2.4.1 查看分支
    git barnch -v
    git branch -a 查看全部分支
  • 2.4.2 切換分支
    git checkout [分支名]
  • 2.4.3 合併分支
    第一步:須要切換到想要合併代碼的分支上面
    第二步:使用git merge [分支名]來合併

    例如:當前所在分支是dev,如今dev上面作了修改,master分支想要合併dev上面的代碼,就要切換到master分支上面進 行merge操做 git merge dev

3,git工做流

  • git 集中式開發
    集中式開發就是全部人都在同一個分支上面開發,而後將代碼提交到同一個遠程分支上面
  • git flow 工做模式
    開發中使用的最多的也是這種
    有一個主幹分支,有一個線上分支,還有一些不一樣功能的分支,好比專門改bug的分支
    主幹分支主要用來合併代碼。
    線上分支合併從主幹分支的代碼。
  • git Forking 工做模式在git flow的基礎上,能夠接受不受信任和保護的代碼。至關於就是跨團隊開發了。
相關文章
相關標籤/搜索