1.起步
1.1 設定username&email
$ git config --global user.name "John Doe"
$ git config --global user.email [email protected]
1.2 檢視配置
git config --list
1.3 初始化倉庫、跟蹤檔案并送出
$ git init
$ git add *.c
$ git add LICENSE
$ git commit -m 'initial project version'
2.記錄檔案變化
2.1 檢視檔案狀态
$ git status -s
M README
M lib/simplegit.rb
MM Rakefile
A lib/git.rb
?? LICENSE.txt
M代表modify,有兩個可以出現的位置,
出現在右邊的 M 表示該檔案被修改了但是還沒放入暫存區,
出現在左邊的 M 表示該檔案被修改了并放入了暫存區,
兩個M表示該檔案被修改并放入暫存區後又被修改了。
2.2 添加檔案至暫存區
git add file
git add是個多功能指令:可以用它跟蹤新檔案,
或者把已修改檔案放到暫存區,還能把合并時沖突的檔案标記為已解決狀态。
注意!如果你git add之後修改檔案,這個檔案會同時出現在暫存區和非暫存區,這時git commint隻送出你最後一次運作 git add 指令時的那個版本,而不是你的最新版本。
2.3 檔案對比
$ git diff --cached
表示暫存後(git add後)的檔案與原始版本的對比
表示未暫存(git add前)的檔案與原始版本的對比
也就是說,git add之前用git diff,之後用git diff --cached。
注意!如果暫存(git add)後又修改了檔案,
則git diff比較未暫存的檔案與暫存(git add)時的檔案。
2.4 跳過使用暫存區域(即跳過git add)
注意:隻會送出已經跟蹤過的檔案,不會送出新添加的檔案
2.5 移除檔案(即脫離追蹤):
$ git rm PROJECTS.md
2.6 移動或重命名
$ git mv README.md README
2.7 送出曆史
$ git log
2.8 取消暫存
$ git reset HEAD file
2.9 還原檔案
$ git checkout -- file
2.10 檔案狀态變化周期圖
3.遠端倉庫的使用
3.1 檢視遠端倉庫
$ git remote -v
origin https://github.com/schacon/ticgit (fetch)
origin https://github.com/schacon/ticgit (push)
orgin是遠端倉庫的别名,預設origin
3.2 詳細檢視遠端倉庫
$ git remote show origin
它會列出遠端倉庫的 URL 與跟蹤分支的資訊,
告訴你git pull時哪兩個分支會合并,git push時會推送到哪個分支
3.3 添加遠端倉庫
git remote add <shortname> <url>
3.4 移除遠端倉庫
$ git remote rm origin
3.5 推送至上遊
$ git push origin <local branch>:<remote branch>
3.6 檢出遠端分支(即建立本地分支)
$ git checkout -b serverfix origin/serverfix
$ git checkout --track origin/serverfix
# --track會預設建立同名分支,兩個指令作用相同,都會檢出分支并指定追蹤分支
3.7 檢視追蹤分支(即本地分支對應的遠端分支)
$ git fetch --all
$ git branch -vv
# -vv并沒有連接配接伺服器,是以需要先fetch,
# -vv還能夠檢視本地分支是否落後遠端分支
追蹤分支:如果你在git pull或git push時沒有顯式指定遠端分支,則預設追蹤分支為對應的遠端分支
3.8 修改目前分支的追蹤分支
$ git branch --set-upstream-to origin/serverfix
# --set-upstream-to也可以用-u代替
4.更新代碼
git pull與git fetch的差別
$ git pull origin master
# 相當于從遠端擷取最新版本并merge到本地
$ git fetch origin
# 從遠端擷取最新版本,但不會自動建立本地分支,
# 隻有一個不可以修改的 origin/master 指針,接下來你可以選擇merge或checkout
$ git fetch origin master:tmp
# 從遠端倉庫master分支擷取最新,checkou到本地建立tmp分支
$ git diff tmp
# 將目前分支和tmp進行對比
$ git merge tmp
# 合并tmp分支到目前分支
5.分支
5.1 建立分支
git branch branchname
5.2 删除分支
git branch -d branchname
5.3 檢視所有分支&目前分支
git branch -a