Git-diff/branch/GithubLog

1.1比较文件的差异

  • git diff [文件名]
    作用:将工作区中的文件与暂存区中的进行比较
  • git diff [本地库中的历史版本] ·[文件名]
    作用:将工作区的文件和本地库中的文件记录比较
  • 不带文件名比较多个文件
    2.1分支概念
    分支branch,一开始对git初始化的时候,存在一个主干分支master,这是项目的主干分支,往后所有分支都要围绕着master主干分支,对master主干分支进行升级、完善。主分支可以建立多个(feature_[项目名])小分支,在线修复BUG-hot_fix分支。
    好处:
  1. 同时并行推进多个功能的开发,提高开发效率,也就是说各个分支项目无需相互等待无顺序。
  2. 各个分支之间是相互独立的,如果一个分支开发失败则不影响其他分支的进程,失败的重新开始即可。
    master主干分支:Wechat
    在这里插入图片描述
    2.2分支的操作
  • 查看所有分支:$git branch -v
    在这里插入图片描述
  • 新建分支:$git branch [分支名]
    星号代表当前所在分支!
  • 在这里插入图片描述
  • 切换分支:$git checkout [已有分支名]
    当前星号在hot_fix分支上
    在这里插入图片描述
  • 合并分支:$git merge [已修改的分支名]
    注意是要切换到需要接受修改的分支上,再执行merge命令。
  • 分支冲突
    当两个分支的内容都发生改变提交,git就不能确定使用哪一个
    在这里插入图片描述
    此时要通过人工来解决冲突,选取最优方案。首先编辑文件,再删除特殊符号。
    然后在add如暂存区,commit提交到本地库,注意当使用commit时,后面不能有文件名,
    否则出现错误:fatal: cannot do a partial commit during a merge.
    在这里插入图片描述
    3.1. 远程库与本地库
    在github中创建远程库
    在这里插入图片描述
    远程库的地址就是如图所示:https://github.com/zhangtao-g/huashan.git
  • 在Git上查看远程库:git remote -v
  • 在Git上创建远程库的别名:git remote add [别名] [地址]
    在这里插入图片描述
  • 将本地路master中的文件push到远程库的master中
    git push [地址别名] [分支名]
    在这里插入图片描述
    3.2克隆
    非本地库管理者的开发者开发此项目,要先创建一个工作空间,再从管理者的远程库中克隆项目到此处
    $git clone https://github.com/zhangtao-g/huashan.git
    在这里插入图片描述
    然后在新建的工作区中就有在Github中的项目文件夹了
    在这里插入图片描述
    克隆后效果:将完整的远程库下载到本地,创建远程地址别名,初始化本地库。
    3.3pull=fetch&merge
  • 克隆后新的开发人员就能协同开发此项目,此开发人员在自己的工作区中打开此项目,进行开发。开发完毕后add/commit进行添加提交,如果此时此开发人员push到项目管理员远程库不会成功,因为项目管理员还没有邀请你共同协作此项目,邀请后,开发人员登陆GitHub账号,后进行 git push origin master。 此时项目管理员远程库的项目中就会有此开发人员的修改。
  • 再进入项目管理员的本地库中,项目还是管理员自己写内容,开发人员修改的内容并没有。
  • 通过命令:$git fetch [项目别名] [分支名] 从远程库中抓取下来。可以发现没有开发人做的修改,fetch只是将远程库中的文件下载到本地,并没有更改本地工作区的文件的内容。
    在这里插入图片描述
  • 查看下载的文件的内容,首先切换远程master分支,$git checkout [远程库地址别名]/[远程库分支名],后可以查看。
  • 查看没有问题后再merge,返回本地的master分支, g i t c h e c k o u t m a s t e r , 合 并 git checkout master,合并 gitcheckoutmaster,git merge [远程库地址别名]/[远程库分支名],就能再本地工作区中查看开发人push的内容了!
    在这里插入图片描述
    总而言之:pull可以完成上述fetch与merge的所有操作。
    $git pull [远程库地址别名] [分支]
    在这里插入图片描述
    3.4. 协同开发时冲突的解决
    当两个人协同开发时,先后修改项目的同一个地方时,会发生push冲突,后修改提交的开发人员,通过push不能推送到远程库中,推送时会发生以下错误。
    在这里插入图片描述
    在这里插入图片描述
    解决方案:
  • 后提交的开发者先从远程库中下载到本地, $git pull [远程库地址别名] [分支名]
  • 在这里插入图片描述
  • 然后再打开文件,将特殊标记行删除,然后通过协商,确定文件的最终修改方案,再添加/提交/push就OK了。
  • 注意提交的时候,后面不用再加文件名!!!!
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
    总结:
  • 如果不是基于GitHub远程库的最新版所做的修改,不能推送,必须先拉取。
  • 拉取下来如果进入冲突区,按照解决“分支冲突”的办法解决即可。

这个问题是因为远程库与本地库不一致造成的,那么我们把远程库同步到本地库就可以了。
使用指令
git pull --rebase origin master
这条指令的意思是把远程库中的更新合并到本地库中,–rebase的作用是取消掉本地库中刚刚的commit,并把他们接到更新后的版本库之中。

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Github下载地址:https://github.com/XLAccount/MiaoBo 项目详解地址:http://www.code4app.com/blog-843201-350.html 快速集成RTMP的视频推流教程:http://www.code4app.com/blog-843201-315.html ffmpeg常用命令操作:http://www.code4app.com/blog-843201-326.html #关于IJKMediaFramework/IJKMediaFramework.h找不到的问题,下载后直接拉到项目中即可 下载地址:https://pan.baidu.com/s/1boPOomN 密码::9yd8 #BUG修复: 解决登录程序偶尔崩溃,修复轮播图片和页面控制器叠加等问题,修复新浪授权登录 (2016.9.7) 解决程序运行中偶尔崩溃问题,解决连续下拉刷新崩溃问题,优化代码 (2016.9.8) 优化直播页面,减少不必要的性能消耗,增加用户体验 (2016.9.11) 适配5s以上的机型除了6sPlus和6Plus延迟较大外,其余延迟都较小,网速好的话可以忽略不计 (2016.9.12) 新版本极大优化程序性能,修复关注数据异常等小问题,重新布局热门页面,减少因反复加载带来的性能消耗 (2016.9.13) 增加个人中心页面,采用下拉放大图片 ➕ 波纹效果 (2016.9.14) ![image text](https://github.com/XLAccount/ALLGIFS/blob/master/psb.gif) 展示图片 ![image](https://github.com/XLAccount/ALLGIFS/blob/master/psb-1.gif) 展示图片 ![image text](https://github.com/XLAccount/ALLGIFS/blob/master/psb-2.gif) 展示图片 ![image text](https://github.com/XLAccount/ALLGIFS/blob/master/psb-3.gif) 展示图片 感谢大神Monkey_ALin http://www.jianshu.com/users/9723687edfb5/latest_articles 的demo支持
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值