筆記參考自Git教程: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 ,在此對原做者表示感謝!git
1. Git 安裝完後,還要設置user.name和user.email,方法以下:github
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
查看設置結果:spa
$ git config --global user.name $ git config --global user.email
顯示當前路徑:版本控制
$ pwd
2. 提交修改指針
$ git add . $ git add -u $ git commit -m " XX comments "
3. 查看各版本提交記錄日誌
$ git log // 查看詳細版本日誌 $ git log --pretty=oneline // 查看簡略版本日誌
4. 查看操做記錄(包含版本commit提交記錄)code
$ git reflog
5. 版本恢復orm
$ git reset --hard // 查看當前的版本號
$ git reset --hard XX // 恢復至版本 XX
6. 工做區和暫存區blog
工做區(Working Directory):設定的目錄教程
版本庫(Repository):.git 隱藏目錄。 版本庫中包含了暫存區(stage或index),一個自動建立的分支master,以及一個指向master的指針head。
$ git add // 是將文件修改添加到暫存區中;
$ git commit // 是將暫存區中內容提交到當前分支中。
$ git diff HEAD -- XX_file_name // 能夠查看工做區和版本庫中文件最新版本(HEAD來表示)的區別
7. 撤銷修改
$ git checkout -- XX_file_name // 注意 -- 不能丟,不然爲新建一個分支的命令
此時文件xx_file_name在工做區中所作的修改將會被撤銷,文件內容根據如下2中狀況進行回退:
(1)若是當前暫存區中有該文件,則回退到暫存區的版本;
(2)若是沒有,則回退到版本庫中的最新版本。
$ git reset HEAD XX_file_name
將文件XX_file_name在暫存區的最新版本從新放回工做區,撤銷add。
場景1:當你改亂了工做區某個文件的內容,想直接丟棄工做區的修改時,用命令git checkout -- file
。
場景2:當你不但改亂了工做區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD file
,就回到了場景1,第二步按場景1操做。
場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,參考版本回退一節,不過前提是沒有推送到遠程庫。
8. 刪除文件
$ rm XX_file_name
$ git rm XX_file_name // 版本庫中刪除
$ git checkout -- XX_file_name // 版本庫中恢復
9. 建立、合併、刪除分支
(1)建立分支
$ git branch XX_branch_name // 建立分支 $ git checkout XX_branch_name // 切換到分支 XX_branch_name
查看當前各分支及狀態
$ git branch
$ git checkout XX_branch_name // 切換到分支 XX_branch_name
(2) 合併分支
$ git merge XX_branch_name // 合併分支 XX_branch_name 到當前分支
(3) 刪除分支
$ git branch -d XX_branch_name // 刪除分支
10. 分支的管理策略
在實際開發中,咱們應該按照幾個基本原則進行分支管理:
(1)有一個master分支保持很是穩定,也就是僅用來發布新版本,平時不能在上面幹活;
(2)有一個主dev分支用於開發,是不穩定的,修改都在dev上。只是到某個時候,好比1.0版本發佈時,再把dev分支合併到master上,在master分支發佈1.0版本;
(3)你和你的小夥伴們每一個人都有本身的dev分支,時不時地往主dev分支上合併就能夠了。
以下圖所示:
修改Bug和添加Feature時,都應當新建一個對應的Dev分支,待改動結束後,merge到主dev分支上。
11. 多人協做
查看遠程庫信息:
$ git remote -v // 查看
$ git remote add origin_blog git@github.com:vin-zhou/vin-zhou.github.com.git // 添加遠程分支
$ git remote remove origin_blog // 刪除遠程分支
多人協做的工做模式一般是這樣:
(1)首先,能夠試圖用git push origin branch-name推送本身的修改;
(2)若是推送失敗,則由於遠程分支比你的本地更新,須要先用git pull試圖合併;
(3)若是合併有衝突,則解決衝突,並在本地提交;
(4)沒有衝突或者解決掉衝突後,再用git push origin branch-name推送就能成功!
若是git pull提示「no tracking information」,則說明本地分支和遠程分支的連接關係沒有建立,用命令git branch --set-upstream branch-name origin/branch-name。
這就是多人協做的工做模式,一旦熟悉了,就很是簡單。
12. 標籤管理
補充:
1. 強制添加文件 :git add -f , 將會無視.gitignore文件,將目錄下全部文件都添加進來。
2. git 忽略文件
講忽略文件的好文章 http://cwind.iteye.com/blog/1666646
使用 git rm --cached file_name , 會將該file_name從tracked中刪除,不予跟蹤。
3. 將版本控制的好文章:http://sjtuecho.blog.163.com/blog/static/20501207420130119441404/