Git 學習筆記

筆記參考自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/

相關文章
相關標籤/搜索