阿娇开发978 发表于 2018-1-15 19:25:17

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",如下:
https://images0.cnblogs.com/blog2015/413851/201507/191643048298589.jpg

GIT 评价

爱上Git的理由


[*]分布式,离线操作
[*]每日工作备份
[*]异地协同工作
[*]现场版本控制
[*]避免引入辅助目录
[*]可以吃后悔药
[*]工作进度随时保存
[*]快
[*]。。。。。
痛恨Git的理由


[*]复杂的信息模型
[*]抓狂的命令语法
[*]让人费解的文档
[*]新概念泛滥
[*]保密性差
[*]学习周期长
[*] 。。。。。。
  集中式协同模型
https://images0.cnblogs.com/blog2015/413851/201507/191643245485932.png社交网络式协同模型https://images0.cnblogs.com/blog2015/413851/201507/191643382825835.png

GIT 使用场景
https://images0.cnblogs.com/blog2015/413851/201507/191643552982138.pnghttps://images0.cnblogs.com/blog2015/413851/201507/191647136267247.jpg
https://images0.cnblogs.com/blog2015/413851/201507/212226116936462.jpg

开始Git操作
  在E盘新建目录E:\WorkSpace\repository\git
  电脑上面安装了Git后,在此目录下,右击单击
https://images0.cnblogs.com/blog2015/413851/201507/191647369702716.pnghttps://images0.cnblogs.com/blog2015/413851/201507/191647468764022.png
  会发现这里是按照linux的方式来显示我们当前这个目录
  1、仓库初始化,这里我其实就是模拟代码服务器上面的共享仓库
  --新建一个 --bare:空的仓库仓库名字shared.git
  git init --bare shared.git
https://images0.cnblogs.com/blog2015/413851/201507/191648155958815.pnghttps://images0.cnblogs.com/blog2015/413851/201507/191648320329759.pnghttps://images0.cnblogs.com/blog2015/413851/201507/191648415959339.png
  仓库文件目录
  HEAD:指向当前分支的一个提交
  description:项目的描述信息
  config:项目的配置信息
  info/:里面有一个exclude文件,指定本项目要忽略的文件
  objects/:Git对象库(commit,tree,blob,tag)
  refs/:标识着你的每个分支指向哪个提交
  hooks/:默认的hook脚本
  2、为了模拟本地开发人员,在电脑上面建立两个文件夹User1,User2,分别代表两个不同的开发人员本地的工作目录
https://images0.cnblogs.com/blog2015/413851/201507/191649242515507.png
  3、模拟User1克隆中央仓库
https://images0.cnblogs.com/blog2015/413851/201507/191649370326568.png

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的代码到本地。
https://images2015.cnblogs.com/blog/413851/201605/413851-20160506133316904-690252116.png
  3、修改BUG提交到publish分支,然后用该分支的代码更新线上环境。
https://images2015.cnblogs.com/blog/413851/201605/413851-20160506133335685-383861753.png
  4、把publish分支的内容合并到开发的master分支处,若出现冲突,请与对应的开发组员确认后解决冲突。在当前publish分支,执行如下操作,合并到master分支。(注意是在master分支上做以下操作)
https://images2015.cnblogs.com/blog/413851/201605/413851-20160506133357076-220300.pnghttps://images2015.cnblogs.com/blog/413851/201605/413851-20160506133406669-1412439062.png
  5、当master分支功能开发完毕后,把master分支与publish分支合并,然后线上部署。
  然后在publish分支上,执行如下操作:
https://images2015.cnblogs.com/blog/413851/201605/413851-20160506133431888-762593382.pnghttps://images2015.cnblogs.com/blog/413851/201605/413851-20160506133440904-117547794.png
  备注:基于第5点对于功能的更新,由于一开始未考虑到测试周期的,该遗漏引发了当前要更新的预发布版本应该置于那个分支中的问题(多人开发导致开发的完成时间不同,开发分支会一直更新源代码,而测试测试功能需要时间)。为了节省操作流程,请要发布的成员要发布新功能时,能跟其他开发人员协商下(等待上一个功能测试发布完毕才推送代码或者两个功能同时进行发布)。
  有时候,我们使用分支合并Merge的时候,没有反应,可以先进行如下步骤:
https://images2015.cnblogs.com/blog/413851/201605/413851-20160506133559404-1845679452.pnghttps://images2015.cnblogs.com/blog/413851/201605/413851-20160506133607591-815925719.pnghttps://images2015.cnblogs.com/blog/413851/201605/413851-20160506133612888-190865145.pnghttps://images2015.cnblogs.com/blog/413851/201605/413851-20160506133622576-908817661.png
页: [1]
查看完整版本: Git入门