在使用 Git 時有一種感受就是隻會
add | commit | push
三個命令。由於這三個命令彷佛足以把代碼提交到 GitHub 上,即便是碰到某個問題,也能夠直接 Google。可是對於其中的邏輯和版本管理的精髓沒有體會到,而只是做爲一個在線代碼倉庫在使用,這樣作也沒有什麼不能夠,可是若是能系統的瞭解爲何要有版本管理工具,以及版本管理工具可以給咱們提供怎麼樣的管理服務,對於使用工具的咱們來講有很大幫助。不用記住命令,只是之後遇到問題時知道這個工具備實現的方式就足夠了。html如今我係統的看了一下官方的 Git 入門教程 Git 官方教程(中字) 裏面經過描述對命令的使用情景進而選擇命令進行操做的方式,使得命令很容易理解也容易加深記憶。比起單一的命令用文字解釋這種方式,對於不熟悉 Git 的人來講是十分友好的。可是,看完容易忘,因此寫了這篇整理筆記用做輔助查詢。git
git help
: 查看命令git help add
: 查看 git add
命令的具體解釋git init
: 建立 .git
, 適合在已存在項目追加版本控制git init projectname
: 建立 projectname/.git
, 適合項目開始時加入版本控制git add filename/*
: 添加文件[產生暫存文件]git commmit -m "message"
: 將添加的文件提交到本地倉庫[產生提交文件]git rm filename
: 移除文件,使用 rm filename
的有暫存git add -u .
: 若是以前使用非 git 命令刪除文件,可使用這個命令把當前目錄的文件從新遍歷清除git rm --cache filename
: 暫存可是不參與跟蹤git mv filepath newfilepath
: 移動文件git rm filepath && git add newfilepath
: 移動文件,以前使用非 git 命令移動文件git add -A .
: 若是以前使用非 git 命令移動文件,可使用這個命令把當前目錄的文件從新遍歷移動,和 rm
命令相似git reset etc...
: 歷史提交管理(回退,合併...),checkout 更關注文件git status
: 查看文件信息git diff
: 查看修改[工做樹和暫存文件]git diff --staged
: 查看修改[暫存文件和最近提交文件]git diff HEAD
: 查看修改[工做樹和最近提交文件]git diff --word-diff
: 查看修改的單詞用顏色標出git diff --stat
: 查看修改的文件名參考資料 0. Git 學習(三)本地倉庫操做——git add & commit 瞭解 git 版本庫實現github
git log
: 顯示提交信息git log --oneline
: 顯示提交 Messagegit log --stat
: 顯示提交文件名級詳細修改信息git log --patch
: 顯示提交文件內容級詳細修改信息git log --graph
: 用圖顯示提交記錄git log --graph --all --decorate --oneline
: 去除冗餘信息,更加直觀顯示每條分支每次提交git log --stat -- filename
: 文件提交記錄(不記錄路徑移動)git log --stat -M --follow -- filename
: 看到完整的文件操做過程touch .gitignore
: 建立文件(次級目錄也能夠建立)vim .gitignore
: 編輯文件添加 ignore 文件。*.log | tmp/ | .sass-cache etc...
git ls-files --others --ignored --exclude-standard
: 查看被 ignore 的文件git reflog
: 詳細修改日誌git branch branchname
: 建立分支git branch
: 顯示分支git branch -d branchname
: 刪除分支git branch -D branchname
: 刪除未合併分支git checkout branchname
: 切換分支git checkout commitID
: 工做樹切換到 commitID 時git checkout -- filename
: 清理掉最後一次提交內容git checkout -b branchname
: 建立新分支而且進入該分支git merge branchname
: 和並 branchname 分支到目前所在分支(合併時文件衝突要手動解決)git merge --abort
: 清除工做目錄和暫存區git merge squash branchname
: 將合併的分支改變變成一個 commitgit rebase branchname
: 將當前分支歷史提交合併到 branchname 分支參考資料 2. 代碼合併:Merge、Rebase 的選擇vim
git remote add origin https://github.com/accountname/projectname
git remote set-url origin newUrl
: 改變 URLgit remote rm origin
: 刪除git remote -v
: 查看 URLgit fetch origin
: 抓取遠程分支,本地會有一個 remotehostname/branchname
的分支,通常用於查看夥伴代碼git pull origin
: 和 fetch 相似,可是是取回遠程更新和本地合併。至關於先 fetch 再 merge。git push origin
: push 到遠程倉庫參考資料 1. Git遠程操做詳解sass
其實在開始把 Git 整個命令流程學習下來以前,對 Git 理解十分淺顯,使用命令也是抱着試試看的心態,錯了搜索解決方法重試,對了就不追究緣由了。這種方式感受更加浪費時間,並且極可能屢次遇到重複問題。以爲之後學習某個東西仍是得大概瞭解整個系統纔好,想快速入門何嘗不可,可是閒下來的時候要去多問問爲何,這樣有了宏觀的概念,出了問題說不定能本身摸索着解決。還有一點,實踐確實是比單一的閱讀或看視頻更加記憶深入,對命令的理解也是同理,因此最好都敲一遍。工具
多謝閱讀 ^_^學習