2个小时学会Git

Git是什么?

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

什么是版本控制系统?

如果你用Microsoft Word写过长篇大论,那你一定有这样的经历:

想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新的Word文件,再接着改,改到一定程度,再“另存为……”一个新文件,这样一直改下去,最后你的Word文档变成了这样:

在这里插入图片描述

过了一周,你想找回被删除的文字,但是已经记不清删除前保存在哪个文件里了,只好一个一个文件去找,真麻烦。

看着一堆乱七八糟的文件,想保留最新的一个,然后把其他的删掉,又怕哪天会用上,还不敢删,真郁闷。

更要命的是,有些部分需要你的财务同事帮助填写,于是你把文件Copy到U盘里给她(也可能通过Email发送一份给她),然后,你继续修改Word文件。一天后,同事再把Word文件传给你,此时,你必须想想,发给她之后到你收到她的文件期间,你作了哪些改动,得把你的改动和她的部分合并,真困难。

于是你想,如果有一个软件,不但能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以,岂不是很方便?

这个软件用起来就应该像这个样子,能记录每次文件的改动:
版本 文件名 用户 说明 日期
1 service.doc 张三 删除了软件服务条款5 7/12 10:38
2 service.doc 张三 增加了License人数限制 7/12 18:09
3 service.doc 李四 财务部门调整了合同金额 7/13 9:51
4 service.doc 张三 延长了免费升级周期 7/14 15:17

这样,你就结束了手动管理多个“版本”的史前时代,进入到版本控制的20世纪。
git的由来
请各位自行百度,搜一搜这个linus的大牛,他写了linux系统核心,并开源,Linux发展这么好不是他一个人的功劳,有很多很多人,为linux做出贡献,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!
Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!
(简单介绍,这里面还是有故事的,感兴趣的小伙伴们可以搜一下)
开源才能走的更长久

  • 创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录
  • 初始化一个Git仓库,使用git init命令。(通过git init命令把这个空目录变成Git可以管理的仓库)
  • 添加文件到Git仓库,分两步:
    1 使用命令git add <file>,注意,可反复多次使用,添加多个文件;
    2 使用命令git commit -m message,完成。
  • 要随时掌握工作区的状态,使用git status命令。
  • 如果git status告诉你有文件被修改过,用git diff可以查看修改内容。
  • 我们脑子里怎么可能记得一个几千行的文件每次都改了什么内容,git log查看历史记录(如果你提交到了本地版本库,这里会看到版本号 类似这样 commit 1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD ->b)

回退版本

  • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
    commit_id 版本号没必要写全,前几位就可以了,Git会自动去找。(这里我们想从现在的a版本回退到上一个版本b,写b版本号前几位就好,但是也不要写1,2位 万一Git找到好几个呢,你不确定是那个。写个5,6 位就可以了)

  • Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从a指向b

  • 如果你回退版本,从a回退到b ,但是过了几个小时你后悔了,你还是想用a版本,但是已经退到b了,怎么办?你找不到a的commit_id 版本号,因为你现在已经在b版本了。

  • 在Git中,总是有后悔药可以吃的。当你用$ git reset --hard HEAD^回退到 b 版本时,再想恢复到a,就必须找到 a 的commit id。Git提供了一个命令git reflog用来记录你的每一次命令

远程仓库

  • 到 github 或者 gitee 创建 远程仓库。
  • 关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
  • 联后,使用命令git push -u origin master第一次推送master分支的所有内容;
  • 此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
  • 要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。
  • Git支持多种协议,包括https,但ssh协议速度最快。

分支

  • 查看分支:git branch
  • 创建分支:git branch
  • 切换分支:git checkout 或者git switch
  • 创建+切换分支:git checkout -b 或者git switch -c
  • 合并某分支到当前分支:git merge
  • 删除分支:git branch -d
  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值