git使用中级教程

摘自微信公众号:https://mp.weixin.qq.com/s?__biz=MzU1NTg0MzMwMg==&mid=2247483711&idx=1&sn=b75e80c4d4483092cee832b22b516b65&chksm=fbcf6ab6ccb8e3a034079078bd9e68a960d9640a6a1b0dff2148f7857e18cbb22f71b2faf4ce&scene=27&ascene=0&devicetype=android-26&version=2700033a&nettype=3gnet&abtest_cookie=BAABAAoACwASABMABAAjlx4AV5keAM6ZHgDZmR4AAAA%3D&lang=zh_CN&pass_ticket=9lOSHFEPi%2FBfnwQrxYqpqLtiULQjuTaK8IThDnW8CiLuaev%2F8mlbsLQoAcYyi4QD&wx_header=1

 

上篇文章说了最基本的git使用,这里讲一些常用的git 操作,git既然是版本控制器,那什么是版本呢?

 

上一篇已经在github上创建了一个仓库了,这个时候我们模拟去公司的时候,怎么拉项目

首先,我们把桌面的那个demo文件夹删掉,因为待会拉下来的项目会重复。

在桌面右键,打开git bash。

 

git clone https://github.com/****/demo.git

从远程仓库复制一个仓库到本地,你会看见桌面上有个demo文件夹,进去会发现就是github上的仓库,还有.git隐藏文件夹,也就是说clone下来的仓库就已经变成本地仓库了。

 

然后这个时候当前还没进入仓库文件夹,只是还在桌面上

cd demo

就进入仓库了,上面会多个(master)的分支显示,当前在master分支上

 

这是就相当于把项目已经down下来了,我们就可以工作,写代码了

我们先修改一下,在test1.txt中修改

git status

查看修改情况,

git diff 

查看修改的内容,精确到行

 

git add .

git commit -m '修改test1.txt'

提交这次修改

 

git log 

查看这个master分支上的提交的日志,每一次的commit都是一条提交,都是一个版本

 

git reflog 

查看你的所有提交记录,比如你的commit ,merge,checkout都能看见

 

git diff <远一点commitId> <近一点commitId>

查看2个提交之间的不同,修改了什么代码,都能看见

 

 

分支

我们在工作中的项目一般是多个人一起开发的,那么你写代码的时候就不能直接在主分支(master)上修改,因为你修改的不一定是对的,别人就不能开发了,所以一般是自己切一个分支来开发,切出来的分支是主分支的副本,代码一模一样。然后你开发完,在合并到主分支,这样就不会影响别人了,别人也不会影响你

 

git branch demobranch

创建一个叫demobranch的分支

git checkout demobranch

第一次checkout会把master的代码复制到新创建的demobranch,以后再checkout就是切换分支了,并不会复制代码。

(这那个指令可以合并成一个简写git checkout -b demobranch)

 

这样我们就从主分支切换到demobranch分支了,可以在这个分支上任意开发,然后再合并到主分支。我们现在在demobranch上修改,做了一个注释为add的提交。

这个时候我们要把这个提交合并到master上

 

git checkout master

切换到master

git merge demobranch

合并demobranch分支上的新提交

master上就有这个提交了

 

提交失败

你不是每次提交都会成功,有可能会失败,如果你和别人都是在同一个分支上写代码的话,别人先提交,你就提交不了,因为你的分支上就不是最新的代码了,所以你必须git pull 把远程的提交拉取下来,同步到本地,保证提交最新,就可以提交了

 

冲突

在pull的过程中有可能会冲突,冲突的意思就是,别人修改了某个文件,你也修改了这个文件,git不知道要 保留那个代码最正确的,所以需要我们自己人工干预去处理,处理好了才能继续提交,这样pull才算完成。

 

git pull = git fetch + git merge 

就是从远程拉取,然后再merge,就是在merge的时候出现冲突的,所以我们merge的时候也会出现冲突,我们来演示merge的时候冲突。

 

我们再切换一个分支demobranch22作为别人在写代码,然后合并到master上,

这个时候,我们到demobranch这个分支上修改,然后再merge,就会出现冲突

这里显示test1.txt出现冲突,因为别人和我都修改了,test1.txt这个文件,别人提交了,而我没有同步他的代码(一般我在写之前会git pull同步一下代码),所以现在没办法同步了,同步还是会冲突,这个时候我们可以放弃合并,git merge --abort就别放弃了

 

所以,这时候如果不放弃合并,就要解决冲突,我们一般会问别人他的那段代码怎么处理,一般2个都保留,我们先看看test1这个文件

我的处理之后

这个时候,文件出现了修改,我们再次提交一下就好了

 

为了更好的避免冲突,每次修改之前,都同步一下代码,git pull

 

好,今天的中级教程就讲到这里,明天讲高级教程

 

 

摘自微信公众号

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows Presentation Foundation (WPF) 是.NET Framework 3.0 的关键组件,是支持下一代视窗应用程序表现层编程的平台,也是微软新发布的Vista操作系统的三大核心开发库之一,主要负责图形显示。本书是针对那些对用户界面开发感兴趣的软件开发人员编写的,易于理解,适合那些.NET的新手,并有助于理解像Microsoft Expression Blend这样产品的精髓。   本书适合各层次Web开发人员阅读。 第一部分 背景 第1章 为什么创造WPF    1.1 回顾过去    1.2 步入WPF    1.3 作为.NET Framework的组成部分     1.3.1 为托管代码而设计     1.3.2 强调声明式描述    1.4 小结   第2章 XAML揭秘    2.1 XAML定义    2.2 元素和特性    2.3 命名空间    2.4 属性元素    2.5 类型转换器    2.6 标记扩展    2.7 对象元素的子元素     2.7.1 内容属性     2.7.2 集合项     2.7.3 更多类型转换    2.8 编译:将XAML与过程式代码混合使用     2.8.1 在运行时加载和解析XAML     2.8.2 编译XAML     2.8.3 XAML关键字    2.9 小结     2.9.1 抱怨1:XML太过冗长不便于输入     2.9.2 抱怨2:基于XML的系统性能差   第3章 WPF的重要新概念    3.1 逻辑树与可视树    3.2 依赖属性     3.2.1 依赖属性的实现     3.2.2 变更通知     3.2.3 属性值继承     3.2.4 对多个提供程序的支持     3.2.5 附加属性    3.3 路由事件     3.3.1 路由事件的实现     3.3.2 路由策略和事件处理程序     3.3.3 路由事件实践     3.3.4 附加事件    3.4 命令     3.4.1 内建命令     3.4.2 使用输入手势执行命令     3.4.3 带有内建命令绑定的控件    3.5 漫游类层次    3.6 小结  第二部分 构建WPF应用程序  第4章 WPF控件   第5章 尺寸缩放、定位与变换元素   第6章 使用面板做布局   第7章 构建并部署应用程序  第三部分 为专业开发人员设计的功能  第8章 资源   第9章 数据绑定   第10章 样式、模板、皮肤和主题 233 第四部分 通过富媒体使程序领先于时代  第11章 2D图形   第12章 3D图形   第13章 动画   第14章 音频、视频、语音和文档  第五部分 高级主题  第15章 与Win32、Windows Form以及ActiveX之间的互用性   第16章 用户控件和自定义控件   第17章 使用自定义面板做布局  第六部分 附录 附录 有用的工具 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值