說到版本控制,腦海裏總會浮現大學畢業是寫畢業論文的場景,你電腦上的畢業論文必定出現過這番景象!html
1
2
3
4
5
6
7
8
9
10
11
|
畢業論文_初稿.doc
畢業論文_修改
1.doc
畢業論文_修改
2.doc
畢業論文_修改
3.doc
畢業論文_完整版
1.doc
畢業論文_完整版
2.doc
畢業論文_完整版
3.doc
畢業論文_最終版
1.doc
畢業論文_最終版
2.doc
畢業論文_死也不改版.doc
...
|
以上就是使用最原始的方式進行版本控制,可是這種方式有顯著缺點:python
爲了解決以上版本控制存在問題,應運而生了一批版本控制工具:VSS、CVS、SVN、Git等,其中Git屬於絕對霸主地位。git
注意:通常版本控制工具包含兩部分github
Git 是一個開源的分佈式版本控制軟件,用以有效、高速的處理從很小到很是大的項目版本管理。 Git 最初是由Linus Torvalds設計開發的,用於管理Linux內核開發。Git 是根據GNU通用公共許可證版本2的條款分發的自由/免費軟件,安裝參見:http://git-scm.com/服務器
GitHub是一個基於Git的遠程文件託管平臺(同GitCafe、BitBucket和GitLab等)。app
Git自己徹底能夠作到版本控制,但其全部內容以及版本記錄只能保存在本機,若是想要將文件內容以及版本記錄同時保存在遠程,則須要結合GitHub來使用。使用場景:分佈式
其餘:工具
集中式:遠程服務器保存全部版本,用戶客戶端有某個版本
分佈式:遠程服務器保存全部版本,用戶客戶端有全部版本網站
Git使用
- 什麼是GIT,eg:以下
- 張開的故事:資源共享網站
- 小弟弟系列
- 小芳系列spa
初始化操做(命令在下面):
初始化後,會在當前目錄自動建立 .git 文件夾,該文件是Git中最重要的文件夾,由於Git相關文件以及版本都將保存在該文件夾中,有了它,不再用擔憂我好多文件來記錄版本了,經過Git命令能夠將全部版本保存在 .git 文件中。
目前已使用Git的四個命令,這四個命令已經能夠代替本地多個文件保存版本的方式:
- 第一個版本:進入程序目錄: git init 初始化,表示即將對當前文件夾進行版本控制。(新建的版本第一次要初始化操做) git add . 當前目錄中全部文件添加到【某個地方】 git commit -m '描述信息' 初版本git已經生成,這個描述信息中能夠寫第一次版本,第二次版本等等 git status 查看當前狀態,如有內容修改的,會提示紅字(查看Git當前狀態,如:那些文件被修改過、那些文件還未提交到版本庫等。) git log 查看提交記錄,即:歷史版本記錄
- 新功能: 李浩專區
開發到了一半,緊急修復線上BUG
git stash----->>下面三行是步驟 解決bug git add . git commit -m '修復bug完畢' git stash pop 可能出現衝突,出現以後不要着急,手動解決衝突 eg:衝突警告 Auto-merging templates/index.html CONFLICT (content): Merge conflict in templates/index.html
開發功能完畢
git add . git commit -m '解決衝突後,繼續開發後續功能'
PS:
這些編號的,都是輸入這個命令以後,後面加編號名稱,記得有空格
git stash 將當前工做區全部修改過的內容存儲到「某個地方」,將工做區還原到當前版本未修改過的狀態(白話:目前位置,共寫了5個版本,如今正在寫5版本中的東西,輸入這個命令,那麼正在寫的代碼會暫時保存到其餘地方,此時會迴歸到5版本從未作過任何修改的狀態,注意:也能夠這麼說,能夠用這個把工做區域弄成乾淨的狀態,因暫時保存到其餘地方,就至關於這樣了)
git stash pop 將第一個記錄從「某個地方」從新拿到工做區(可能有衝突);(白話:跟上面的git stash聯合起來看,就是修改了5版本的問題以後,會和5版本所寫的新內容進行合併,合併的時候有可能衝突,這個時候就須要手動來解決衝突)
git stash list 查看「某個地方」存儲的全部記錄(查詢到的是帶編號的)
git stash clear 清空「某個地方」
git stash apply 編號, 將指定編號記錄從「某個地方」從新拿到工做區(可能有衝突) ----->>後面跟編號,表示把這個編號的版本從新拿到工做區;跟pop的區別是,pop是拿到的第一個,也就是正在編輯的這個。
git stash drop 編號,刪除指定編號的記錄 PS:注意用pop和apply的區別
git reflog----->>查看都有那些版本標識
git reset --hard ‘後面跟版本標識‘ 表示:回到某個版本
git stash list 是裏面存放的全部東西
這個apply後面跟編號,指的是獲取到某個編號的,而pop之的是第一個
PS:add後面跟文件名錶示:只是把這個文件名增長到暫存區;而小數點表示:當前全部的文件都增長到暫存區
下面一幅圖完美詮釋以上操做:
便可更新狀態,也可回滾。
工做區:當前開發程序所在目錄稱爲工做區,即:工做開發都是在該目錄,該區域的文件會有狀態的變化且狀態由git自動檢測,若是程序中文件作任何操做(增、刪、改),文件狀態均會被檢測到,可使用 【git status】命令查看。
版本庫:工做區檢測到有文件發生變化,那麼意味着較上一個版本以後對程序進行了修改,修改完成以後,能夠當作下一版本進行提交,那麼就是執行 【git add .】 將全部文件提交到暫存區,而後再執行【git commit -m '又一個版本'】提交到版本庫的分支便可,以後可使用【git log】命令查看版本記錄。
———————————————————————
http://www.cnblogs.com/haiyan123/p/7989167.html 可參考博客
總結開發流程步驟:
項目背景:這個創業者想開發一個資源共享的系統
階段一:順利上線代碼
首先在你建立的項目的文件夾裏面右鍵--->點擊Gir Bash Here---->把git運行起來。 一、初始化:git init 二、若是你第一次使用git的時候,須要配置一下。若是你已經配置了,之後就不用配置了>>>以下: git config --local user.name 'xxx' git config --local user.email 'xxx@example.com' 注意:執行git commit 命令時,可能會提示進行用戶和郵箱的配置,該配置用於記錄當前版本由那個用戶提交 三、把當前的目錄以及及全部的子文件添加到git: git add . #全部的文件 git templates/index.html #具體添加的文件 四、真實的把數據提交上線,設置版本:git commit -m "描述信息" 注意:這個描述信息必定好好寫 五、查看狀態,看那個是否被修改過:git status 必定記得先add,後commit,add以後是沒有放到版本里的,只有commit的時候纔有版本 六、查看有幾個版本:查看版本提交記錄 :git log 七、回滾到上一個版本:git reset --hard 版本號 八、再跳回去(查看日後的版本號):git reflog ——————————————————————— 最後須要往GitHub上進行push推送的時候 會提示輸入用戶名和密碼的,而後輸入本身的github註冊的用戶名,和本身郵箱密碼便可。 ——————————————————————— ps: 紅色》》 未管理的狀態 git status 綠色》》 已經歸我管理的狀態 git add. 白色》》 已經移走的狀態 git commit -m "描述信息"
———————————————————————
PS:
git經常使用命令速查表
詳細參考:http://www.cnblogs.com/wupeiqi/p/7295372.html
附屬一張大神畫的流程圖: