git詳解

原文連接git

git詳解

1,git結構

  • 1.1 工做區 工做區就是寫代碼的地方,若是有新增修改刪除文件都是在工做區發生變化。 工做區的文件能夠經過git add 命令將文件提交到暫存區。github

  • 1.2 暫存區 暫存區就是用來臨時存儲代碼的一片區域,是已經修改了可是尚未提交,未來能夠提交到本地庫也能夠撤回來。 經過git commit 命令能夠將暫存區的文件提交到本地倉庫。緩存

  • 1.3 本地庫 本地庫就是存儲的實實在在的歷史版本 能夠經過git push命令來將本地庫的文件推送到服務器。服務器

2,git命令

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

  • 2.2 設置簽名 形式: 用戶名:lc email:test@163.com 做用: 區分不一樣開發人員的身份 命令: 項目級別/倉庫級別,僅在當前本地倉庫範圍內有效。 git config user.name lc git config user.email test@163.comspa

    系統級別:登錄當前操做系統的範圍有效。
      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參數能夠直接將工做區的內容提交到本地倉庫,不用走暫存區,減小添加操做。rest

  • 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指針 重置緩存區

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

  • 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的時候,就會提示你。

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

    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的基礎上,能夠接受不受信任和保護的代碼。至關於就是跨團隊開發了。

相關文章
相關標籤/搜索