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操作

在E盘新建目录E:WorkSpace epositorygit

电脑上面安装了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多口岸)

CommonMSD多口岸开发分支

Publish:目前线上正式环境分支。(只为更新线上BUG分支)

以GIT的分支来处理,一个线上分支,若干个开发分支,线上出现BUG,修复线上分支上的BUG,然后把修复的分支合并到若干个开发分支上。发布的时候,以经过测试的稳定的开发分支为节点,合并到线上分支上,以该节点作为线上分支的版本。

解决方案:

1、添加线上版本分支publish(已创建,当前版本为2016-02-16master版本)

2、拉一个线上版本分支publish的代码到本地。

 

3、修改BUG提交到publish分支,然后用该分支的代码更新线上环境。

 

4、把publish分支的内容合并到开发的master分支处,若出现冲突,请与对应的开发组员确认后解决冲突。在当前publish分支,执行如下操作,合并到master分支。(注意是master分支上做以下操作)

 

5、当master分支功能开发完毕后,把master分支与publish分支合并,然后线上部署。

然后在publish分支上,执行如下操作:

 

备注:基于第5点对于功能的更新,由于一开始未考虑到测试周期的,该遗漏引发了当前要更新的预发布版本应该置于那个分支中的问题(多人开发导致开发的完成时间不同,开发分支会一直更新源代码,而测试测试功能需要时间)。为了节省操作流程,请要发布的成员要发布新功能时,能跟其他开发人员协商下(等待上一个功能测试发布完毕才推送代码或者两个功能同时进行发布)

有时候,我们使用分支合并Merge的时候,没有反应,可以先进行如下步骤:

原文地址:https://www.cnblogs.com/jiekzou/p/4658854.html