我们在实际做项目开发时,一般都需要多人协同开发,这就产生了代码管控的需求,一些版本控制的工具就应运而生了。现在常用的一种是Git,另外还有些svn等,本人感觉git工具比较好用,这篇文章也只讲述git的使用操作。

在讲述git的使用之前,需要依赖一个可以托管代码的平台,也就相当于把代码托管到一个远程仓库,这样的平台也有几种,我在另一篇文章讲述了项目托管到oschina的步骤,可以先按这篇文章操作之后再学使用git操作。如果已经完成代码托管则继续向下进行吧。文章链接:http://blog.csdn.net/lei_notes/article/details/53287447

一:下面就讲解安装配置步骤:

本次以Androidstudio项目为例讲解,所需工具有

步骤二:

1:将git工具和studio关联

打开所示界面,1处为git的安装目录,点击test按钮,如果弹出图示小框,则表示配置成功。

二:按照上面文章操作之后,就将我们的项目提交到远程仓库了,接下来就是和搭档在实际开发时代码的提交和合并了,下面就讲git的使用和操作吧。

1.      先讲讲怎么创建分支吧,项目里每个成员都会有各自的分支,平时操作时都是在各自分支上的修改和合并,所以你要加入一个项目,要先创建属于自己的一个分支,下图为使用studio创建分支的操作,点击右下角的git:master(master其实是项目的默认分支,以后也是你们项目合并后的代码存放的分支,一般不用与开发)

按照上述操作之后会发现刚才右下角的master变成了你建的分支名字,说明创建成功了,不过到这一步只说明见创建成功了一个本地分支而已,在你的远程分支上还没有你刚才创建的这个分支,可登录oschina的码云查看,方式如下:

从下图可以看到你的分支列表还只有默认分支master,没有你新建的分支

下图就是把你新建的本地分支推送到远程仓库的操作

在接下来的弹框点击push即可,现在再看看你的osChina上分支列表会发现你刚建的分支也有了,说明你整个创建过程成功了。

2.分支的切换:开发过程中我们有时想要切换别的分支查看,下面就是切换分支的操作点击右下角git:分支名,在弹出框中有本项目的所有分支列表,可任意选中一个在接下来的侧滑栏中选中checkout即切换成功,不过此时切换后的可能不是这个分支最新的代码,这就需要拉取和合并最新代码操作了,这些在下面的讲述。

3:代码拉取和合并。这一步是为了把搭档分支上的最新代码合并到自己分支上,保证自己的分支是最新的全部代码。提交和合并代码的方式有两种,一种是用git的可视界面操作,一种是用android studio本身操作。

我们先讲解用studio提交,拉取和合并操作。

3.1:studio提交。当我们对某个文件修改之后,这个文件的名字就会显示蓝色,想要提交这些修改过的代码时,在自己的分支上做如下操作:

在下面窗口1处勾选修改的文件,2处填写修改日志,3处提交,在下个弹框点击push

3.2:studio的拉取和合并。在做这个操作前我们必须把自己修过的代码提交,才能做拉取动作,不然会出现拉取失败或者代码混乱等问题。拉取操作如下:

在下图上面箭头处勾选想要拉取的分支,点击pull

然后你会发现在test2分支上改过的代码已经显示在test1分支上了,说明你拉取成功。此时可能你和搭档修改了同一处代码,就会发生冲突,这时你可在处理冲突的窗口选择留下谁的代码,处理结束继续提交即可。然后就需要把你拉到和合并后的代码提交到你的远程分支,提交步骤如上3.1。

4:使用git的可视界面提交,拉取和合并。

4.1:提交代码,打开你的项目目录,右键按如下步骤操作

点击后出现如下操作界面,点击1处扫描出最新改动的文件,2处区域是改动过的文件,3处区域是此文件改动的内容,点击2处箭头可将此文件缓存,也可点击下面的“缓存改动”把全部改动的文件缓存,这是把文件缓存到本地仓库。4处区域就是缓存后的文件,也可点击4处箭头处取消缓存。缓存之后在5处区域填写改动日志,点击签名后提交,稍等后再点击上传。

点击上传出现下面提示框,上面是选择上传的分支,选好后点击上传。这个操作是把代码上传到远程分支仓库,如需输入账号密码,按照提示输入即可。输入成功后显示如下成功界面,即表示代码提交成功。

4.2:使用git操作实现代码的拉取和合并

打开你的项目目录,右键按如下选择:

点击后会打开一个命令窗口,这就是用命令符来操作了

1.      git status  这是查询你当前分支的状态,如果有已经修改的还没提交的文件,会显示一些红色未提交代码的列表,需要你按照上述4.1的操作步骤提交代码(注:一定要先提交,再做拉取合并操作)后再做后续操作。如果没有继续进行

2.      git checkout dev_test2     这是切换分支到你想要拉取代码的分支上,切换成功后显示如图2处,错误则按照提示解决。

3.      git pull       这是拉取这个分支上的代码

4.      git checkout dev_test1     切回到你的分支

5.      git merge dev_dev_test2 合并merge这两个分支的代码,如果顺利,直接进行下一步。(如果两个人同时对一个文件操作,会有图示3区域标注提示,说明代码改动冲突了,找到冲突文件,显示如下下图,解决冲突后,按上述4.1的操作步骤提交修改后的代码即可,无需后续操作。)

6.      git push     把合并后的代码上传。可能会有提示输入账号密码的提示,如下图4中标注区域,输入即可(输入密码时不会展示,其实已经输入了,不要当成没输入成功)

下面即为上面所说代码冲突的情况,效果如下

下图为冲突解决后的效果,解决之后按上述4.1步骤操作,即可。

使用git的可视界面和命令符提交,拉取,合并的步骤如上,感觉麻烦些,但使用过程感觉稳定些。

以上即为实际开发中使用git版本控制工具的实际应用,根据个人喜好可以直接使用studio操作也可选择使用git的可视界面和命令符操作。其实还有好多工具可替代git自己的可视界面,用法基本雷同,自己可以研究。

git 怎么拉取线上代码到本地进行合并_android studio如何使用git提交、拉取、合并代码的操作...相关推荐

  1. git 本地改动了,不保留,直接拉取线上最新代码

    如果您在本地做了改动,但是又不想保留这些改动,可以使用以下命令强制拉取远程最新代码,覆盖掉本地代码: git fetch --all git reset --hard origin/<branc ...

  2. Vue后台数据模拟以及抓取线上数据

    现在的vue里dev-server.js被替换成了webpack-dev-conf.js,以下分为本地后台数据和线上数据抓取两种情况. 数据抓取 首先 const axios = require('a ...

  3. hbuilderX安装git插件→拉取线上gitlab项目

    打开需要创建项目的目录文件夹 右键选择git clone- 这样就可以用hbuilderX提交代码了

  4. python爬取网页上的特定链接_python3下scrapy爬虫(第三卷:初步抓取网页内容之抓取网页里的指定数据)...

    上一卷中我们抓取了网页的所有内容,现在我们抓取下网页的图片名称以及连接 现在我再新建个爬虫文件,名称设置为crawler2 做爬虫的朋友应该知道,网页里的数据都是用文本或者块级标签包裹着的,scrap ...

  5. 【SVN】在Windows系统上进行SVN的基本操作(检出,更新,提交,分支合并分支,还原,制造冲突以及解决冲突,忽略)

    介绍 这里是小编成长之路的历程,也是小编的学习之路.希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡. 一个人为什么要努力? ...

  6. git线上服务器_pm2实现git仓库代码一键配置部署到线上服务器

    第一步 先实现 ssh的免密登录远程服务器: 第二步 初始化项目, 并把项目部署到git仓库 下面用几个最简单的项目做演示, 项目目录下面就这个三个文件 把项目部署到git仓库,记住git仓库地址 比 ...

  7. Git - 拉取远程分支并创建本地分支

    一.查看远程分支 使用如下git命令查看所有远程分支 git branch -r 查看远程和本地所有分支 git branch -a 查看本地分支 git branch 在输出结果中,前面带* 的是当 ...

  8. index.php后有乱码后缀,phpExcel在线下wamp环境下,正常导出,同样的代码到线上Linux导出文件无法打开,修改文件后缀为.xls后乱码...

    本人是用phpExcel导出会员表到浏览器,在线下测试正常,可以导出,也无编码错误, 1.线下正常导出的表格 2.线上导出有问题的表格 3,修改后缀后显示乱码 现贴出代码. case 'test': ...

  9. 线上服务被干爆了,竟然是日志的锅!!

    本文要介绍的是一个发生在我们线上环境的真实案例,问题发生在某次大促期间,对我们的线上集群造成了比较大的影响,这篇文章简单复盘一下这个问题.问了方便大家理解,实际排查和解决过程可能和本文描述的并不完全一 ...

最新文章

  1. mysql error1045 yes_MySQLERROR1045(28000)错误的解决办法_MySQL
  2. php多维数组遍历创建表格,php实现遍历多维数组的方法_PHP
  3. VC控件 Progress Control
  4. ubuntu安装VMware出错
  5. 【渝粤教育】电大中专电子商务网站建设与维护 (27)作业 题库
  6. Java 日期与时间
  7. HBase实践案例:车联网监控系统
  8. OpenvSwitch架构
  9. 液晶显示屏怎么显示泰文_上海工业液晶显示屏厂家
  10. 一等奖60万,首届“唱圆”杯AI翻译大赛报名中
  11. xcode9 免证书调试
  12. 北斗sdk_北斗定位终端开发技术方案.pdf
  13. 创新工场 蔡学镛SINA微博中向我们提及的书籍、文章统计 (二)
  14. Blender自动化建模入门
  15. 终于,高考的三只靴子落下了...
  16. 视频剪辑怎么学?四个方面要注意,整体思路是关键
  17. 手把手教你用JAVA实现“语音识别”功能(声音转文字)标贝科技
  18. 《前端》localStorage 和 sessionStorage-将数据存入(取出)缓存的方法-2020年10月6日
  19. 沪漂程序媛妹子的一天...
  20. 【文字识别】TrOCR: Transformer-based Optical Character Recognition with Pre-trained Models

热门文章

  1. thymeleaf 使用页面报错_SpringBoot 使用thymeleaf 跳转页面时,总是提示404找不到页面...
  2. python连接hive_python连接hive
  3. linux安装系统ftp服务器配置,linux系统搭建ftp服务器的配置方 - 电子发烧友网
  4. html5 iframe 属性,html中关于iframe的allowTransparency属性的详解
  5. mysql 左右值算法详解_无限分类左右值算法的常规操作逻辑
  6. 用virt-manager管理远程KVM虚拟机
  7. 在C#中有效地使用列表作为字典键
  8. 使用ASP.NET Core开始使用gRPC客户端和服务器
  9. maven+mvc设计模式
  10. ionic轮播,滑动之后不进行轮播