Git使用教程
快速学习熟,悉git版本管理工具的使用。
奔跑的小刺猬
欲速则不达
展开
-
Git使用学习(二十二、团队协作冲突的解决)
但凡是团队合作,就一定会出现冲突。假设项目经理张小龙在它的本地改了一个bug之后,推送到了远程库。这时项目组的小张肯定不知道项目经理的推送,更不知道项目经理张小龙改了那个位置的内容。此时假设小张也修改了这个位置,此时也向远程库推送自己的修改。此时因为出现冲突,小张推送会失败。此时小张必须先把远程库的拉取到本地,完成合并后在进行推送。我们在下面演示一下上面的情况。...原创 2019-03-26 22:52:58 · 803 阅读 · 0 评论 -
Git使用学习(二十一、远程库github操作[4]拉取)
上一节中,项目组员,小张已经把自己的本地库的内容推送到了远程库github。本节项目负责人张小龙,准备把远程库的内容拉取到他的本地。然后检查无误后把远程库合并到他的本地开发中。可以看到,拉取之前文件里面的内容是wechat 0.1 version当然,拉取(fetch)或(pull)都从远程来读文件,所以这里是不需要登录操作的。当然我们这里拉取的文件其实并不会...原创 2019-03-26 22:18:18 · 631 阅读 · 0 评论 -
Git使用学习(二十、远程库github操作[3]邀请加入团队和push)
上一节我们学习到,项目组成员,因为没有被邀请加入团队,所以不能向远程库推送自己的本地更改。这里开始我们就让项目的负责人,邀请项目组成员加入这个项目。下面给出操作步骤输入邀请人的github账号邀请创建后,可以看到,已经有了协作人的信息接下来要把邀请链接发生给,要求加入的人。当然,这个链接可以使用任何方式,Q...原创 2019-03-26 21:32:59 · 1118 阅读 · 0 评论 -
Git使用学习(十九、远程库github操作[2]clone)
上一节中项目经理张小龙先生已经把自己搞的WeChat 0.1版本放到了远程仓库了。接下来WeChat项目组的成员,小张需要把远程库的0.1版本的WeChat clone到他的本地。然后进行增加功能。这里我们换一个方式。使用Windows下的git来实现,成员小张的所有操作。小张先从远程仓库中拿到这个项目的clone地址。然后执行克隆操作git clone r...原创 2019-03-26 00:25:13 · 382 阅读 · 0 评论 -
Git使用学习(十八、远程库github操作[1]creat 和 push)
什么是远程库?远程库这个叫法主要是为了和本地库做区分。远程库主要是为了集中管理一些主要的版本,以及为了方便其它开发者获取和更新这个远程库。如何使用远程库?假设一个项目由两个工程师负责,一个是项目经理,一个是项目组员。1.开始由项目经理在它本地新建了一个本地库。同时由项目经理在远程服务器上创建一个远程库。此时如下所示,两个库都是空的。2.接下...原创 2019-03-25 20:50:14 · 351 阅读 · 0 评论 -
Git使用学习(十七、Git的分支管理机制)
Git 的分支,其实本质上仅仅是指向提交对象的可变指针。 Git 的默认分支名字是 master。 在多次提交操作之后,你其实已经有一个指向最后那个提交对象的 master 分支。 它会在每次的提交操作中自动向前移动。注:Git 的 “master” 分支并不是一个特殊分支。 它就跟其它分支完全没有区别。 之所以几乎每一个仓库都有 master 分支,是因为 git init 命令默认创建它,...原创 2019-03-24 22:48:48 · 560 阅读 · 0 评论 -
Git使用学习(十六、Git的文件管理机制)
集中式版本控制工具的文件管理机制以文件变更列表的方式存储数据。这类系统将它们保存的信息看作是一组基本文件和每个文件随时间逐步累计的差异。每次的上传到服务器上文件,保存在服务器的部分都是这次和上次版本之间的差异。如果要从服务器更新到本地也是需要把原始文件的版本和每次的差异 都合并起来,组成一个版本。这样的版本我们可以看到,有点是节约服务器的存储空间,但缺点也很明显,速度慢。...原创 2019-03-24 21:48:18 · 1358 阅读 · 1 评论 -
Git使用学习(十五、哈希)
哈希是一个系列的加密算法,各个不同的哈希算法虽然加密强度(哈希碰撞)不同,但是有一下几个共同点。不管输入数据量多大,对于同一个哈希算法,得到的加密结果长度固定。 哈希算法确定,输入数据确定,输出结果能够保证不变。 哈希算法确定,输入数据有变化,输出数据一定有变化,而且通常变化很大。 哈希算法不可逆这里我用我电脑上的一个加密工具做一个演示。新建了一个txt的文件,里...原创 2019-03-24 21:14:58 · 806 阅读 · 0 评论 -
Git使用学习(十四、解决分支合并后产生的冲突)
什么时候会产生合并冲突?假如说我们目前我们有两个分支master和hot_fix,目前两个分支的内容是一样的。假设master分支修改了它的工作区的apple.txt文件,并做了提交。而hot_fix分支也修改了它的工作区的apple.txt文件,并做了提交。这里假设master分支修改的内容和hot_fix分支修改的内容不一样。这个时候,无论是master分支想...原创 2019-03-24 20:28:56 · 4223 阅读 · 0 评论 -
Git使用学习(十三、分支的简单操作)
如何查看当前所在的分支?使用git status可以查看当前所在分支,默认创建没切换过分支都是在master分支上。如何查看这个项目所有的分支?使用git branch -v如何创建分支?使用git branch 分支名下面我们创建一个hot_fix分支这里我们可以看到,新创建的分支和主分支的内容完全一样。如何切换分支?使用git ...原创 2019-03-24 17:36:22 · 391 阅读 · 0 评论 -
Git使用学习(十二、分支)
什么是分支?在版本控制过程中,使用多条线,同时推进多个任务。在git的版本库初始化好之后,默认会有一个分支,叫master分支假设我们开开发一个叫WeChat的项目。这里基本的底层的东西由团队负责人开始搭建好,做出了一个基本的底层,这个版本只支持基本的两个人之间的文字聊天功能。接下来要让这个WeChat项目,增加两个功能,一个是语音消息功能,一个...原创 2019-03-24 15:24:16 · 343 阅读 · 0 评论 -
Git使用学习(十一、文件比较操作)
git中文件的比较操作是用linux中的diff命令来完成的,其格式也是按照linux中的diff来显示的假设我们本地新建了一个文件,叫,apple.txt,里面的内容是6行的apple字符。接下来把这个文件加入到暂存区。之后修改工作区的文件。使用diff命令来对比,工作区和暂存区的文件带-的红色,表示工作区和暂存区相比,减少的内容,而带+de绿色部分,...原创 2019-03-24 13:36:46 · 786 阅读 · 0 评论 -
Git使用学习(十、文件的删除和撤销)
第一种:一个文件加入本地库中之后,删除工作目录下的这个文件,之后提交没这个文件的工作目录到本地库。第一步:创建一个文件,加入到本地库此时工作区,暂存区,本地库都有这个test.txt文件存在。第二步,删除文件,提交本次更改这次删除文件后的提交要注意一个点,就是git add这个命令对于删除了的文件的使用。可以看一下我之前的使用。直接使用gi...原创 2019-03-23 23:27:48 · 532 阅读 · 0 评论 -
Git使用学习(九、git命令参数的特点)
git的命令参数分为长参数和短参数比如我们前面的提交本地库的命令参数-m 表示后面跟的是一个提交消息记录。git commit -m "commmint message log" [pathname]这的-m是一个短参数。当然也可以使用这个的长参数,写法如下git commit --message="commmint message log" [pathna...原创 2019-03-23 22:06:50 · 428 阅读 · 0 评论 -
Git使用学习(八、hard和soft以及mixed参数对比)
开始之前,先看上一节的版本回滚的命令git reset --hard reset有回滚的意思,为什么这个命令要带--hard这个参数呢?那这个git reset 是不是还有其它参数呢,不然就一个参数,就没必要敲了。这里我们看一下git中关于reset的帮助文档。git help reset 可以看到git reset可带的参数很多,这里我们主要看下面这三个。...原创 2019-03-23 21:02:38 · 774 阅读 · 0 评论 -
Git使用学习(七、版本回滚)
git版本回滚的原理git中有一个全局变量叫HEAD,HEAD这个指针指向的版本就是当前版本。如果我们需要调出某个版本的记录,需要让HEAD指针指向这个版本,然后再从本地仓库拉取到工作区间就可以了。git进行版本回滚的方式有三种基于索引值(哈希值)的回滚 基于^符号 基于~符号这里我们主要来说一下基于索引值的回滚。这里要说一个命令,...原创 2019-03-23 19:00:52 · 803 阅读 · 0 评论 -
Git使用学习(六、查看历史记录的几种方式)
git中有个命令叫git log,可以用来查看版本的更新日志。简单是使用如下,也是上一节内容增加的三次版本提交。git log为了方便学习,我多增加几条版本更新因为一屏放不完,可以使用空格来一屏一屏的切换,也可以使用vim的命令来一行一行或者指定到哪一行的切换等。上面这种显示确实不方便查看,所以git可以使用一种漂亮显示的方式查看记录 git ...原创 2019-03-23 17:53:28 · 1456 阅读 · 0 评论 -
Git使用学习(五、git的add和status命令)
git工具的所有命令都是以git开头,就像linux中的命令那样,git是主命令,后面需要跟上其它副命令。首先学习的是查看状态的命令。假设我们git init后的目录是没文件的。查看后,打印出下面三句信息第一句表明我们现在在主分支(分支后面再学习)第二句表明git还没提交过文件到本地仓库第三局表明没有可提交的信息,建议我们自己创建或者拷贝一份文件后再使用git a...原创 2019-03-23 13:53:54 · 1765 阅读 · 0 评论 -
Git使用学习(四、git的初始化)
初始化本地仓库git init初始化之后,会在当前目录下创建一个.git的目录。我这边的工程里面的文件可能会随着我学习内容的变动,而git的使用暂时就一直在这个目录下(我们用Git肯定是要做大项目的^V^)。这个里面是一个虚拟网卡的驱动,暂时还在学习。里面内容可以忽略掉。只关注git本身的学习。.git目录初始化之后会放置一些文件或文件夹,这个就是g...原创 2019-03-23 00:47:59 · 644 阅读 · 0 评论 -
Git使用学习(三、git和代码托管中心)
什么是代码托管中心?我们看过上一节git基础的那图片,有一个仓库没说,这个就是远程仓库。代码托管中心的任务,就是用来维护这个远程的仓库。最著名的git的代码托管中心就是github,国内还有比如码云之类比较大的托管中心。当然公司里面也可以自己搭建服务器建立自己的托管中心。本地仓库和远程如何交互?这里要说的是,git和linux很相似的是对...原创 2019-03-23 00:20:32 · 725 阅读 · 0 评论 -
Git使用学习(二、git安装和基础)
Git的安装非常简单,这里就不贴出来了。分享几个其它博主的安装教程,不会的话参考。https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Githttps://jingyan.baidu.com/article/9f7e7ec0b17cac6f2815548d.htmlhttps://www.c...原创 2019-03-22 23:48:53 · 697 阅读 · 0 评论 -
Git使用学习(一、为什么要有版本管理)
问题?假设你在的公司要上线一个新功能,你们开发团队为实现这个新功能,写了大约5000行代码,上线没2天,就发现这个功能用户并不喜欢,你老板让你去掉这个功能,你怎么办?你说简单,直接把5000行代码去掉就行了,但是现在会出现一个问题,你的这个写了3周功能,也许你已经不记得新增加了哪5000行代码了?所以你急需要一个工具,能帮你记录每次对代码做了哪些修改,并且可以轻易的把代码回滚到历史上的某个状态...原创 2019-03-22 22:53:41 · 1229 阅读 · 0 评论