版本控制,GIT

版本控制(Version Control)

作用是追蹤文件的變化。爲什麼需要版本控制?簡單說,就是當你出錯了,可以很容易地回到沒出錯時的狀態。

在不破壞源文件的基礎上,得到一個類似的新文件。文件的多版本保存是一個常見問題,通常的解決辦法是這樣的:

  1. 做一個文件備份(比如Document.old.txt)。

  2. 在文件名中加入版本號或日期(比如Document_V1.txt,DocumentMarch2007.txt)。

  3. 在多人編輯的環境下,共享一個文件目錄,並且要求每個人編輯完以後,在文件上做出標識。

通過文件名識別版本,對於小型項目或者單個文件也許可行。但是對於軟件開發來說,是不適用的。大型的、頻繁修改的、多人編寫的軟件項目,需要一個版本控制系統(簡稱VCS,行話叫做"文件數據庫"),追蹤文件的變化,避免出現混亂。

VCS應該做到以下幾點功能:

  • 備份(Backup)和恢復(Restore)。文件的每一次編輯都得到保存,可以恢復到任意一個日期。需要2007年2月23日的版本?沒問題。
  • 同步(Synchronization)。讓不同用戶隨時都能得到文件的最新版本。
  • 短期撤銷(Short-term undo)。文件被你搞亂了,怎麼辦?那就撤銷編輯,回到最近一次的無差錯版本。
  • 長期撤銷(Long-term undo)。有時候,你會過了很久才發現出錯了。如果你想撤銷一年前的一次編輯,怎麼辦?那就去取回一年之前的那個版本。
  • 追蹤修改(Track Changes)。文件的每一次編輯,你都可以寫下註解,解釋編輯的原因。(這些信息儲存在VCS中,而不是文件中。)這樣就很容易看出,長期中文件變化的脈絡和原因。
  • 追蹤權限(Track Ownership)。VCS會記錄每一次提交新版本的用戶名。這樣就容易追蹤責任。
  • 試驗功能(Sandboxing)。當你對文件做出重大變更時,你可以把編輯內容暫時性地保存在一個單獨的區域,不斷進行測試和除錯。等到確認正確以後,再加入主版本。
  • 分支(Branching)和合並(merging)。分支功能可以看成是一個更大的測試版本。你將整個的代碼做一份拷貝,然後再起一個獨立的名字,追蹤其變化,與原版本脫離關係,這就是分支。以後,你還可以將分支版本再併入源版本,這就是合併。

上有許多VCS軟件可供選擇,並且都有詳細的教程或手冊,比如SVNCVSRCSGitPerforce等等


GIT

分支共有5種類型
  1) master,最終發佈版本,整個項目中有且只有一個

  2) develop,項目的開發分支,原則上項目中有且只有一個

  3) feature,功能分支,用於開發一個新的功能

  4) release,預發佈版本,介於develop和master之間的一個版本,主要用於測試

  5) hotfix,修復補丁,用於修復master上的bug,直接作用於master

 

 

回滾與重置區別

回滾 

回滾1, 後續的234依舊存在

重置 

重置1,  後續的234全部重置

 

修改最近一次提交的備註信息

git commit --amend
 

詳細日誌查看

1. git log 查看提交歷史記錄

2. git log --oneline  或者 git log --pretty=oneline 以精簡模式顯示

3. git log --graph 以圖形模式顯示

4. git log --stat 顯示文件更改列表

5. git log --author= 'name' 顯示某個作者的日誌

6. git log -p filepath 查看某個文件的詳細修改

7. git log -L start,end:filepath 查看某個文件某幾行範圍內的修改記錄

8. git log --stat commitId  或者 git show --stat commitId 查看某一次提交的文件修改列表 

 

衝突解決

<<<<<<< .mine

這裏的是你本地的內容

=======

而這裏的是資源庫中的內容,這是更新之時自動合併產生的結果;

>>>>>>>.r3541

SourceTree

https://jingyan.baidu.com/article/dca1fa6f19c0abf1a5405246.html

http://www.ruanyifeng.com/blog/2008/12/a_visual_guide_to_version_control.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章