日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Git介紹,安裝,Git+Git flow使用

 ZackEdge 2015-05-24

特點:  1.可以快速的切換項目分支.
  2.回滾某個分支的版本.
  3.每次切換分支不用修改配置文件 (因項目而定義)
  4.不用 新建/切換 虛擬目錄/域名.因為都是在同一個目錄下進行.
  5.上面這些對你有吸引力嗎? 喜歡那就參與進來吧. 

 

什么是Git

   
   Git是Linux Torvalds為了幫助管理 Linux,內(nèi)核開發(fā)而開發(fā)的一個開放源碼的版本控制軟件.

   特點是快速,開源,分布式管理系統(tǒng).

   它可以對代碼的修改進行回滾,將錯誤的代碼剔除.

   或者簡單地跟蹤哪些人修改了代碼的哪些行的內(nèi)容.
   
 

對比:集中化的版本控制

  
  集中化的版本控制系統(tǒng)通常采用兩種方式:

  有些提供了文件鎖來防止多個用戶的并行訪問,這些系統(tǒng)對文件進行加鎖,這樣在某個時間只有一個開發(fā)人員對中心倉庫具有寫入權(quán)限.

  另外一些工具,例如 SVN,允許多個開發(fā)人員同時對相同的文件進行編輯,并提供了一些機制稍后合并這些修改。
  
    CVS,SVN 等工具都是代碼部署到服務器上,每次需要遠程更新到本地,解決沖突在此提交.
  這樣弊端很明顯,如果這臺服務器掛掉幾個小時,可能在這幾個小時內(nèi),你的代碼都無法去提交.

  配圖:
  

      

  圖解: 代碼都集中部署到一臺服務器上,每臺電腦需更新服務器上的代碼,修改后提交到服務器上.  

  弊端:如果版本控制這臺服務器掛掉,可能對整個項目開發(fā)都會造成影響,因為開發(fā)者都不能提交,其他人也無法獲取到代碼,最重要的是代碼也無法時時的進行備份,改動大風險也更大.如果你在一個不能連接網(wǎng)絡的地方時,就像在飛機上,火車上,或者某些無網(wǎng)絡的情況下,就不能提交文件,查看歷史版本記錄,創(chuàng)建項目分支,等.

 

對比:分布式的版本控制

   
   GIT跟SVN一樣有自己的集中式版本庫或服務器.

   
但GIT更傾向于被使用于分布式模式,也就是以每個開發(fā)人員為中心 版本庫/服務器 上chectout代碼后會在自己的機器上克隆一個自己的版本庫.

   如果你在一個不能連接網(wǎng)絡的地方時,就像在飛機上,火車上,或者某些無網(wǎng)絡的情況下,也一樣可以提交文件,查看歷史版本記錄,創(chuàng)建項目分支,等. 
   
   GIT把內(nèi)容按元數(shù)據(jù)方式存儲,而SVN是按文件:

   
所有的資源控制系統(tǒng)都是把文件的元信息隱藏在一個類似.svn,.cvs等的文件夾里.

   把.git目錄的體積大小跟.svn比較,會發(fā)現(xiàn)它們差距很大.

   .git目錄是處于你的機器上的一個克隆版的版本庫,它擁有中心版本庫上所有的東西,例如標簽,分支,版本記錄等.

  配圖: 
  

  

  圖解:開發(fā)者從 版本庫/服務器 克隆一份代碼,可以隨意的 新建/切換 分支,可以同時在 版本1,版本2 中去來回切換修改代碼,互并不影響其他版本.

  把開發(fā)者的機器也克隆成一臺服務器,同樣也擁有,查看歷史記錄,創(chuàng)建,合并分支等功能. 

 

 

操作環(huán)境

 

  操作系統(tǒng):Mac Os

  虛擬主機:VMware Fusion

  虛擬系統(tǒng):Centos 5.5+

  操作用戶:Root

  實現(xiàn)目的:搭建Git版本控制.

 

安裝依賴庫和版本控制軟件

 

復制代碼
# 安裝 Git#######################################################

# Git 依賴庫
yum install -y gettext-devel expat-devel curl-devel zlib-devel openssl-devel
 
# Centos
http:///projects/git-snapshots/git/git-latest.tar.gz

# Mac Os
安裝最新版XCode即可

# Windows Msysgit
http://code.google.com/p/msysgit/downloads/list

# Ubuntu
sudo apt-get install git git-core #(可能會出現(xiàn)未發(fā)現(xiàn)軟件源,推薦下載tar.gz包安裝包)

# 安裝 Git End####################################################

# Gitosis(GIT環(huán)境)
安裝Git后在安裝Gitosis
復制代碼

 

安裝Git

 

復制代碼
# 存放軟件包目錄
cd /web/git

tar -zxvf git-latest.tar.gz
cd git-2011-12-14/ # 根據(jù)當前版本解壓目錄名稱可能不同
make -j6

# 如果出現(xiàn)找不到libiconv.so庫設置一下軟連接
ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2
make install

# 測試安裝是否成功
git
復制代碼

 
#如圖 

 

簡單配置Gitosis

  
  Git我們安裝好了,這時我們需要一臺服務器(或者Git Hub開始使用一下Git)
 

  Git Hub很簡單網(wǎng)上資料較多,找一下,我就不在重復的總結(jié)了.
 

  有時我們開發(fā)環(huán)境是局域網(wǎng),并且源碼不想讓其他人看到,這時需要在局域網(wǎng)上搭建一臺GIT Server
 

  本篇主要介紹Git的,只是搭建一個環(huán)境提供簡單的使用,不會過多的介紹Gitosis.
 

復制代碼
# 創(chuàng)建Git目錄
mkdir /git
cd /git

# 克隆Gitosis
git clone git://eagain.net/gitosis.git

# 安裝python擴展
yum -y install python python-setuptools

# 安裝
cd gitosis
python setup.py install

# 生成共秘鑰
ssh-keygen -t rsa -C 'xinxiangmo@gmail.com'

# 公鑰發(fā)送到git Server上
scp ~/.ssh/id_rsa.pub root@ce.com:/git (ce.com是我指向的虛擬機IP)

# 切換到Git Server添加,切換用戶
adduser git
su git

# 初始化版本庫
gitosis-init < /git/id_rsa.pub
# Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/
# Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/ 

# 切換本機,克隆倉庫,修改創(chuàng)建項目
# (可以直接在Git Server /home/git/repositories/gitosis-admin.git/gitosis.conf 下操作)
git clone git@ce.com:gitosis-admin.git

# 新建項目(名稱woyaoquan)
vi gitosis-admin/gitosis.conf
[group woyaoquan]
writable = woyaoquan
members = xinxiangmo@gmail.com

# 切換本機重新克隆
git clone git@ce.com:woyaoquan.git
cd woyaoquan && touch index.php
git add . #添加緩存區(qū)
git commit -m "提交文件,添加index.php文件"

[
master (root-commit) 42e0160] 提交文件,添加index.php文件
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 index.php

git push #發(fā)布到master分支上
 
復制代碼

 

Git + Git Flow 項目中使用

  
  在上面已經(jīng)使用過Git的一些參數(shù),詳細講Git的有很多,比較詳細的有 Git Book  Pro Git 等,就不太過多的Copy,Git本身也比較靈活.

  一般都會使用Git Flow控制版本發(fā)布流程, 因篇幅問題就不在這里展示安裝Git Flow了,也比較簡單.

  簡單的說一下項目的發(fā)布流程 

  
Git flow普通BUG流程:

復制代碼
# 進入克隆倉庫(上面有方法) clone
cd /git/woyaoquan
# 初始化版本流程控制
git checkout -b develop origin/develop
# 初始化工作目錄(一直回車即可)
git flow init
# 開始創(chuàng)建新的需求分支,目的修改image
git flow feature start editimage #這時項目會自動切換 feature/editimage分支
#
更改部分代碼后
#
git commit -a -m "修改完了"
#
完成開發(fā)分支合并develop(自動)
git flow feature finish editimage
# 發(fā)布到遠程開發(fā)分支
git push origin develop
復制代碼


Git flow 緊急BUG流程(1)

復制代碼
# 拉回release版本
git pull origin release/v1.0
# 切換分支
git checkout release/v1.0
# 修改BUG
#
git commit -a -m "修改完BUG,BUG文件+行數(shù)"
#
修改完后提交
git push origin release/v1.0
復制代碼


Git flow 緊急BUG流程(2)

復制代碼
# 更新master分支
git pull origin master(更新master分支為最新)
# 切換到master分支
git checkout master
#生成一個hotfix分支
git flow hotfix start hfx

# 通知相關得工程師和測試人員hotfix分支名稱
#
最終測試完成后拉回分支最新代碼
git pull origin hotfix/hfx
# 最終修改和測試完成后,結(jié)束hot fix以供發(fā)布
git flow hot fix finish hfx
# 發(fā)布最終的master分支
git push origin master
復制代碼



    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多