一開始對版本管理概論很模糊,僅僅知道保存本地,但弊端不少,一是須要單獨記錄每次改動的內容,但也僅僅以標籤的形式記下來,二是回退十分麻煩,還常常容易出錯,每每尚未重來的快,更別提安全備份沒保存這些讓人分分鐘喪失從新作人的事情了;git
這時候接觸到了ClearCase,我最先使用的版本管理工具(拖外包公司的福),用下來感受就是巨複雜、客戶端很是卡、安裝包超大,還常常碰到各類問題可是很難找到資料去解決,後來就開始改用 svn;windows
Subversion,估計是 ClearCase 挺貴的,後來就沒再用了,公司在一臺單獨的服務器上搭建了svn服務,而咱們就只須要在本地安裝一個 svn 客戶端就能夠提交和更新代碼了,以前公司大都在 windows 環境下開發,因此通常使用 svn 客戶端的形式或 IED 集成的 svn 插件,慢慢的用着就變成了單純的代碼託管的地方;安全
後來接觸到了 git,傳說中 linus 編寫的版本管理工具,恩,自帶人性化高端光環;服務器
版本控制系統,顧名思義是能夠有效、高速的處理從很小到很是大的項目版本管理(度娘扒的),高效的管理每每能把一羣烏合之衆變成一支精銳之師,多多益善應該就是這樣的,git 會幫你記住每次改動的詳細過程,而且能夠隨時切換到任意的一個狀態;svn
git --help工具
最經常使用的 git 命令有:
add 添加文件內容至索引
bisect 經過二分查找定位引入 bug 的變動
branch 列出、建立或刪除分支
checkout 檢出一個分支或路徑到工做區
clone 克隆一個版本庫到一個新目錄
commit 記錄變動到版本庫
diff 顯示提交之間、提交和工做區之間等的差別
fetch 從另一個版本庫下載對象和引用
grep 輸出和模式匹配的行
init 建立一個空的 Git 版本庫或從新初始化一個已存在的版本庫
log 顯示提交日誌
merge 合併兩個或更多開發歷史
mv 移動或重命名一個文件、目錄或符號連接
pull 獲取併合並另外的版本庫或一個本地分支
push 更新遠程引用和相關的對象
rebase 本地提交轉移至更新後的上游分支中
reset 重置當前HEAD到指定狀態
rm 從工做區和索引中刪除文件
show 顯示各類類型的對象
status 顯示工做區狀態
tag 建立、列出、刪除或校驗一個GPG簽名的 tag 對象fetch
通常本身用到的就是建立分支,而後修改,最後合併到主線上;插件
git 的工做區和暫緩區:版本控制
git 有個特殊的地方就是暫緩區,也就是 git add 這步所用到的,git add 將要提交的內容放到暫緩區,git commit 命令就是把暫緩區裏面的全部修改所有提交; 日誌