设为首页 收藏本站
查看: 940|回复: 0

[经验分享] Git入门

[复制链接]
发表于 2018-1-15 19:25:17 | 显示全部楼层 |阅读模式
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的时候,没有反应,可以先进行如下步骤:

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-435453-1-1.html 上篇帖子: Git -- 创建与合并分支 下篇帖子: 一个低调的iOS开发
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表