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

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

設置

安裝git後咱們須要配置一下,告訴git咱們的基本信息等等..通常在用戶範圍內去配置 git ,也就是在 global 範圍。html

  • global 全局設置

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

    同時咱們能夠用 $ git config --list來查看咱們的設置,
    若是須要修改從新設置使用git

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

    全局範圍的配置會保存在當前用戶的主目錄下面 叫.gitconfig 的文件裏面。咱們可使用cat ~/.gitconfig來查看github

    $ cat ~/.gitconfig複製代碼
    設置別名-alias

    經過別名能夠簡化常常輸入的內容,別名的配置也能夠在gitconfig裏面查看api

    git config --global alias.cm commit複製代碼

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

  • 全局忽略文件

    有時候咱們須要去忽略系統生成的文件好比mac 下的.DS_Store,咱們能夠在全局設置gitignoreapp

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

    而後在gitignore文件裏面寫入須要忽略的文件ui

    .DS_Store複製代碼

    你能夠參考下面的連接來看更多要忽略的文件
    gist.github.com/octocat/925…spa

    若是在項目中能夠建立名爲.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

相關文章
相關標籤/搜索