天天看點

Git入門

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入門

社交網絡式協同模型

Git入門

GIT 使用場景

Git入門
Git入門
Git入門

開始Git操作

在E盤建立目錄E:\WorkSpace\repository\git

電腦上面安裝了Git後,在此目錄下,右擊單擊

Git入門
Git入門

會發現這裡是按照linux的方式來顯示我們目前這個目錄

1、倉庫初始化,這裡我其實就是模拟代碼伺服器上面的共享倉庫

--建立一個 --bare:空的倉庫  倉庫名字shared.git

git init --bare shared.git

Git入門
Git入門
Git入門

倉庫檔案目錄

HEAD:指向目前分支的一個送出

description:項目的描述資訊

config:項目的配置資訊

info/:裡面有一個exclude檔案,指定本項目要忽略的檔案

objects/:Git對象庫(commit,tree,blob,tag)

refs/:辨別着你的每個分支指向哪個送出

hooks/:預設的hook腳本

2、為了模拟本地開發人員,在電腦上面建立兩個檔案夾User1,User2,分别代表兩個不同的開發人員本地的工作目錄

Git入門

3、模拟User1克隆中央倉庫

Git入門

Git基本指令

==============版本管理者操作========================

第一步: 建立資料倉庫

git init --bare shared.git

==============開發人員1操作=============================

第二步:複制倉庫到本地

git clone /e/ WorkSpace/repository/git/shared.git/ . (注意有個點,表明目前目錄)

第三步:設定個人資訊

git config user.name "user1"
git config user.email "[email protected]"

第四步:忽略無需版本控制的文檔
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 "[email protected]"

第十步:忽略無需版本控制的文檔
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的代碼到本地。

Git入門

3、修改BUG送出到publish分支,然後用該分支的代碼更新線上環境。

Git入門

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

Git入門
Git入門

5、當master分支功能開發完畢後,把master分支與publish分支合并,然後線上部署。

然後在publish分支上,執行如下操作:

Git入門
Git入門

備注:基于第5點對于功能的更新,由于一開始未考慮到測試周期的,該遺漏引發了目前要更新的預釋出版本應該置于那個分支中的問題(多人開發導緻開發的完成時間不同,開發分支會一直更新源代碼,而測試測試功能需要時間)。為了節省操作流程,請要釋出的成員要釋出新功能時,能跟其他開發人員協商下(等待上一個功能測試釋出完畢才推送代碼或者兩個功能同時進行釋出)。

有時候,我們使用分支合并Merge的時候,沒有反應,可以先進行如下步驟:

Git入門
Git入門
Git入門
Git入門
部落格位址: http://www.cnblogs.com/jiekzou/
部落格版權:

本文以學習、研究和分享為主,歡迎轉載,但必須在文章頁面明顯位置給出原文連接配接。

如果文中有不妥或者錯誤的地方還望高手的你指出,以免誤人子弟。如果覺得本文對你有所幫助不如【推薦】一下!如果你有更好的建議,不如留言一起讨論,共同進步!

再次感謝您耐心的讀完本篇文章。

其它:

.net-QQ群4:612347965

java-QQ群:805741535

H5-QQ群:773766020

我的拙作《ASP.NET MVC企業級實戰》《H5+移動應用實戰開發》

《Vue.js 2.x實踐指南》

《JavaScript實用教程 》

《Node+MongoDB+React 項目實戰開發》

已經出版,希望大家多多支援!

Git入門