GIT簡介
Linus的第二個偉大作品。2005年由於BitKeeper軟件公司對Linux社區停止了免費使用權。Linus迫不得己自己開發了一個分布式版本控制工具,從而Git誕生了。
目前使用Git作為版本控制的開源軟件:Linux kernel,Android, jQuery, Ruby on Rails,Debian…
Eclipse上使用Git的項目數量也已經超過了使用SVN的倉庫數。
在windows上如何安裝Git
你可以從官網或者網上下載Git,這里我共享了Git-1.9.4-preview20140815的下載地址:http://pan.baidu.com/s/1sj3dihB
下載后,雙擊進行安裝
具體安裝方法參考:http://jingyan.baidu.com/article/bea41d4373e9bdb4c41be669.html
安裝完成后,在開始菜單里面找到 "Git --> Git Bash",如下:

GIT 評價
愛上Git的理由
- 分布式,離線操作
- 每日工作備份
- 異地協同工作
- 現場版本控制
- 避免引入輔助目錄
- 可以吃后悔葯
- 工作進度隨時保存
- 快
- 。。。。。
痛恨Git的理由
- 復雜的信息模型
- 抓狂的命令語法
- 讓人費解的文檔
- 新概念泛濫
- 保密性差
- 學習周期長
- 。。。。。。
集中式協同模型
社交網絡式協同模型
GIT 使用場景



開始Git操作
在E盤新建目錄E:\WorkSpace\repository\git
電腦上面安裝了Git后,在此目錄下,右擊單擊


會發現這里是按照linux的方式來顯示我們當前這個目錄
1、倉庫初始化,這里我其實就是模擬代碼服務器上面的共享倉庫
--新建一個 --bare:空的倉庫 倉庫名字shared.git
git init --bare shared.git



倉庫文件目錄
HEAD:指向當前分支的一個提交
description:項目的描述信息
config:項目的配置信息
info/:里面有一個exclude文件,指定本項目要忽略的文件
objects/:Git對象庫(commit,tree,blob,tag)
refs/:標識着你的每個分支指向哪個提交
hooks/:默認的hook腳本
2、為了模擬本地開發人員,在電腦上面建立兩個文件夾User1,User2,分別代表兩個不同的開發人員本地的工作目錄

3、模擬User1克隆中央倉庫

Git基本命令
==============版本管理員操作======================== 第一步: 創建數據倉庫 git init --bare shared.git ==============開發人員1操作============================= 第二步:復制倉庫到本地 git clone /e/ WorkSpace/repository/git/shared.git/ . (注意有個點,表明當前目錄) 第三步:設置個人信息 git config user.name "user1" git config user.email "user1@163.com" 第四步:忽略無需版本控制的文檔 echo "*.txt" > .gitignore 第五步:新建一個文件 echo "User1 add content" > index.aspx
第六步:提交文件 git add index.jsp git commit -m "User1 add the file" 第七步:把自己的倉庫提交到公共服務器 git push origin master ==============開發人員2操作============================= 第八步:復制倉庫到本地 git clone /e/WorkSpace/repository/git/shared.git/ . 第九步:設置個人信息 git config user.name "user2" git config user.email "user2@163.com" 第十步:忽略無需版本控制的文檔 echo "*.txt" > .gitignore 第十一步:新建一個文件 echo "User2 add content" >> index.aspx 第十二步:提交文件 git add index.aspx git commit -m "User2 add the file!" 第十三步:把自己的倉庫提交到公共服務器 git push origin master ==============開發人員1操作============================= 第十四步:下載服務器最新數據 git pull
TortoiseGit
如果你覺得這樣的命令操作起來很繁瑣,習慣了過去TortoisSVN烏龜殼這樣的可視化客戶端工具,那么你也可以下載Git的可視化客戶端工具,我的電腦是64bit的,所以這里只提供64bit的下載。
TortoiseGit_1.8.9.0_x64下載地址:http://pan.baidu.com/s/1ntDuJmL
使用TortoiseGit進行分支合並
為了解決線上版本出現BUG,要及時修復,而本地開發環境在開發途中,不能進行更新的情況。
思路
目前共存以下3個分支:
master:目前的開發分支(不包含MSD多口岸)
Common:MSD多口岸開發分支
Publish:目前線上正式環境分支。(只為更新線上BUG分支)
以GIT的分支來處理,一個線上分支,若干個開發分支,線上出現BUG,修復線上分支上的BUG,然后把修復的分支合並到若干個開發分支上。發布的時候,以經過測試的穩定的開發分支為節點,合並到線上分支上,以該節點作為線上分支的版本。
解決方案:
1、添加線上版本分支publish(已創建,當前版本為2016-02-16的master版本)
2、拉一個線上版本分支publish的代碼到本地。

3、修改BUG提交到publish分支,然后用該分支的代碼更新線上環境。

4、把publish分支的內容合並到開發的master分支處,若出現沖突,請與對應的開發組員確認后解決沖突。在當前publish分支,執行如下操作,合並到master分支。(注意是在master分支上做以下操作)


5、當master分支功能開發完畢后,把master分支與publish分支合並,然后線上部署。
然后在publish分支上,執行如下操作:


備注:基於第5點對於功能的更新,由於一開始未考慮到測試周期的,該遺漏引發了當前要更新的預發布版本應該置於那個分支中的問題(多人開發導致開發的完成時間不同,開發分支會一直更新源代碼,而測試測試功能需要時間)。為了節省操作流程,請要發布的成員要發布新功能時,能跟其他開發人員協商下(等待上一個功能測試發布完畢才推送代碼或者兩個功能同時進行發布)。
有時候,我們使用分支合並Merge的時候,沒有反應,可以先進行如下步驟:




