Git 詳細的操作指南筆記(從零開始)

凹凸卿發表於2017-03-14

git地址:github.com/aototo/blog…
喜歡的朋友start一下,長期更新文章

設定

安裝git後我們需要配置一下,告訴git我們的基本資訊等等..一般在使用者範圍內去配置 git ,也就是在 global 範圍。

  • global 全域性設定

      $ git config --global user.name 'xxxx'
      $ git config --global user.email 'xxxx'複製程式碼

    同時我們可以用 $ git config --list來檢視我們的設定,
    如果需要修改重新設定使用

      $ git config --unset --global user.name複製程式碼

    全域性範圍的配置會儲存在當前使用者的主目錄下面 叫.gitconfig 的檔案裡面。我們可以使用cat ~/.gitconfig來檢視

      $ cat ~/.gitconfig複製程式碼
    設定別名-alias

    通過別名可以簡化經常輸入的內容,別名的配置也可以在gitconfig裡面檢視

      git config --global alias.cm commit複製程式碼

    這樣當你在commit 的時候 就可以 使用 git cm -m 'xx'來代替了。

  • 全域性忽略檔案

    有時候我們需要去忽略系統生成的檔案比如mac 下的.DS_Store,我們可以在全域性設定gitignore

      git config --global core.excludesfile ~/.gitignore_global複製程式碼

    然後在gitignore檔案裡面寫入需要忽略的檔案

      .DS_Store複製程式碼

    你可以參考下面的連結來看更多要忽略的檔案
    gist.github.com/octocat/925…

    如果在專案中可以建立名為.gitignore,為每個專案配置。具體忽略的檔案可以檢視上面的連結

    如果你想忽略掉已經跟蹤的檔案,可以使用 git rm cached選項,再指定一下檔名稱,這樣可以取消跟蹤指定的檔案。


Git 基礎命令

  • 初始化Git

    控制和管理專案需要初始化git

      $ git init複製程式碼
  • 檢視當前修改 -git status

      $ git status複製程式碼
  • 檢視提交的資訊 -git log

      $ git log
      $ git log --oneline //顯示在一行
      $ git log --oneline --before = '2017-01-01' //顯示2017-01-01的提交複製程式碼

    你可以使用git help log 檢視更多資訊

  • 提交 -git commit

    新增新的檔案,或者修改已有的檔案,之後使用commit告訴 git 你做了哪些事情。可以使用git log 檢視以往的提交。

      $ git commit -m '這裡來描述事情'複製程式碼
  • 對比差異 -git diff

    如果你修改了檔案,你想檢視自己目前修改的了哪些,可以使用

      $ git diff複製程式碼

    如果想跟暫存區裡面的檔案進行對比(暫存區就是git add 檔案),可以用

      $ git diff --staged複製程式碼
  • 重新命名,移動 -git mv

    git mv可以重新命名或者移動檔案和目錄

      $ git mv xx1.js xx2.js //重新命名
      $ git mv xx1.js js/ //移動檔案
      $ git mv js asset/ //移動目錄複製程式碼
  • 刪除檔案 -git rm

      $ git rm fileName複製程式碼

    如果你想刪除暫存區的可以使用

      $ git rm --cached fileName複製程式碼
  • 撤銷操作 -git amend

    如果提交commit之後發現有遺漏的檔案可以使用該命令,具體流程

      $ git conmmit -m "xxx.js"
      $ git add "xxx2.js"
      $ git commit --amend --no-edit複製程式碼

    上面的三條命令最終只是產生一個提交,第二個提交命令修正了第一個的提交內容。提交之後你就可以使用git log --name-status提交了哪些檔案

  • 修改撤銷檔案 -git checkout

    比如你刪除了index.html,使用以下命令恢復檔案,也可以恢復之前修改過的

      $ git checkout  -- index.html
      $ git checkout .  //會取消所有本地的複製程式碼
  • 撤銷已經add的檔案 -git reset

    有時我們會不小心git add,取消某些add的檔案。(還原暫存區)

      $ git reset HEAD fileName複製程式碼
  • 撤銷已經commit的檔案 -git reset

    假如你的專案已經commit了,可以用到該命令恢復到指定的commit。
    第一步 git log --oneline

      5c422a3 add html
      6804500 Delete a.css複製程式碼

    第二步

      $ git reset id  //id 是指上面commit 的id複製程式碼

    第二種方法,更快捷的

      $ git reset HEAD^ // 回退到上一個commit, 預設--mixed複製程式碼

    git reset 有3個選項,
    --soft 不會影響到工作目錄還有暫存區裡的東西
    --hard 工作目錄,暫存區直接重置到指定的提交狀態
    --mixed 預設選項,會把暫存區裡的東西重置到指定提交狀態,並且指標指向這個提交。

    一般情況, 如果你發現commit檔案是存在bug情況,你只需要修改檔案程式碼,那就用預設的mixed,hard會重置檔案的內容到指定的commit,也就是說你的之前寫的程式碼會被重置刪除掉,切記。

      git reset [--soft | --mixed | --hard] [-q] [<commit>]複製程式碼
  • 儲存修改恢復進度檔案 -git stash

    stath 可以讓工作進度先儲存起來,需要用到的時候在恢復。
    場景: 你修改檔案app.js ,然後你git add file後你暫時不想跟後面的檔案一起commit,那麼就可以先儲存起來

      $ git stash save "這裡可以是說明"複製程式碼

    檢視儲存的進度,或者顯示進度的目錄

      $ git stash list
      $ git stash show -p stash@{..}複製程式碼

    恢復進度(取出之前儲存的進度)

      $ git stash apply stash@{..}複製程式碼

    刪除不需要的進度

      $ git stash drop 或者 後面跟上stash@{..}代號複製程式碼

分支branch

Git 分支 - 何謂分支

  • 檢視,建立專案分支

      $ git branch
      $ git checkout -b [name_new_branch] 複製程式碼
  • 刪除分支

      $ git branch -d [name_branch] 複製程式碼
  • 切換分支

      $ git checkout [branch-name]複製程式碼
  • 對比分割槽的區別

      $ git checkout branch複製程式碼
  • 分割槽合併

      $ git merge [your_branch]複製程式碼

    注意:如果你合併master ,首先需要切換到master 分支下進行合併。

  • 分割槽對比

      $ git diff [branch]..[branch]複製程式碼
  • 重新命名branch

      $ git branch -m [branch] [new_name_branch]複製程式碼

遠端 remote

  • 新增遠端地址

      $ git remote add origin [git_address]複製程式碼
  • 分支推送到遠端的版本

      $ git push origin master複製程式碼

具體很多細節去多看看深入的實戰


git log 命令支援選項參考這裡

選項 說明
-p 按補丁格式顯示每個更新之間的差異
--word-diff 按 word diff 格式顯示差異。
--stat 顯示每次更新的檔案修改統計資訊。
--shortstat 只顯示 --stat 中最後的行數修改新增移除統計。
--name-only 僅在提交資訊後顯示已修改的檔案清單。
--name-status 顯示新增、修改、刪除的檔案清單。
--abbrev-commit 僅顯示 SHA-1 的前幾個字元,而非所有的 40 個字元。
--graph 顯示 ASCII 圖形表示的分支合併歷史。
--relative-date 使用較短的相對時間顯示(比如,“2 weeks ago”)。
--pretty 使用其他格式顯示歷史提交資訊。可用的選項包括 oneline,short,full,fuller 和 format(後跟指定格式)。
--oneline --pretty=oneline --abbrev-commit 的簡化用法。

更多的深入瞭解可以去git api檢視
參考
git 官網
5.2 程式碼回滾:Reset、Checkout、Revert的選擇
git 中文
Create a new branch with git and manage branches

相關文章