前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【多图慎入】Git(一)

【多图慎入】Git(一)

作者头像
用户8902830
发布2022-09-22 11:19:32
2800
发布2022-09-22 11:19:32
举报
文章被收录于专栏:CodeNoneCodeNone

直接进入主题

❝Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. ❞

这是官网首页对Git的介绍,重点是两个关键词,开源就不说了,最重要的是一款「版本控制系统」 。至于说另外一个版本系统SVN,不用去管网上一大堆的区别,只需要知道一点,Git是分布式的,SVN则不是,其他的缺点等你用多了慢慢就能体会到了。

其实官网的这个介绍还是太专业了,讲人话就是Git是「多人协同」「同步」工具。对于一个文件,可以多个人在不同的时间地点修改,然后进行一系列的操作对文件进行修改同步。

地基

先来讲怎么「安装」

「windows」

https://git-scm.com/download/win 下载完后,「next大法好」 。再次友情提示,安装软件,非特殊情况下,「一律不推荐安装在c盘」

「mac」

至于mac的话,不会吧不会吧,都快2202年来,不会还有人mba或者mbp上还不安装「homebrew」叭🐶🐶🐶。

不过官网上也确实是这样推荐的

无论哪个平台,打开终端,输入git version ,如果你能看到如下,那说明安装成功了。

再来讲Git的基本知识

本地指的是本地PC,origin是指「远端自己的仓库」,remote是指「远端别人的仓库」。remote中一般就是常说的远程仓库,存放着大家共同修改的文件。至于里面的一些操作下面会讲。

小木屋

首先创建一个「远程自己」的仓库,在gitee上创建即可

注意「选择的是开源」,私有的话就是只能你自己访问了,创建完之后在gitee上就能看到了。接下来要做的就是把「远程自己」的仓库克隆或者拉取到本地,这里先使用命令行。

  1. 「clone」 git clone [仓库地址,一般是采用ssh,但是https也行]

通过.git目录「就可以知道该目录所在的文件夹是一个」git仓库 ❝所有有关git的操作都是需要在git仓库下面执行,不然就会有fatal: not a git repository (or any of the parent directories): .git 这样的提示 ❞

  1. 「add」 接着新建一个first的txt文件,里面写了add file firstly ,然后git add

对于add而言

git比较人性化的一点就是当你打错的时候会提醒你接近的正确的打法,或者哪里出错了。然后使用git status 来查看状态,这个命令在命令行中比较常用,这里就不再单独拎出来说。 使用git rm --cached <file> 「撤回提交」

撤回提交后,再次使用status,可以发现文件已经变成untraced未被git追踪的状态,接下来add两个文件

  • add file 是添加某个文件
  • add file1 file2 是多个文件
  • add . 是该目录下所有修改过的文件。
  1. 「commit」 通过提示也可以知道到了commit,所谓commit就是提交到本地的仓库,虽然你在仓库下新建了文件,但是并没有提交给git ❝注意,是本地的仓库,不是远程自己的仓库 ❞

所以以后记得,所以以后记得,「commit一定要记得带message」,对应的命令是git commit -m 'message'

  1. 「push」 这时候「远程自己的仓库是没有的」,毕竟你只是commit到了本地的仓库,如果想要远端有,那就必须采取「push」操作

可以发现Permission denied 「没有权限」,这是因为gitee没有认识我们,所以需要「生成ssh公钥并上传gitee」「生成公钥」 首先看电脑中的.ssh文件夹(无论是windows还是mac默认都会生成在这个文件夹下,都是在用户目录下)里有没有id_rsa和id_rsa.pub文件。

得到生成的公钥后,进入gitee设置,让gitee认识这个公钥

接着再进行push操作试试

可以看到已经能成功push上远程自己的仓库,这时候再去gitee上面看看,码云上已经有了两个文件,并且后面跟着的就是commit时候写的message。

  1. 「remote」 一般来说,push后面是要跟着地址的,但是本地中remote地址只有一个的情况下后面就可以不用跟地址。可以通过以下命令来设置远程仓库地址。

当然,我们push到远程别人的仓库的时候肯定是没有权限的,因为根本不认识我们,这时候就需要后面讲的fork和mr了。

  1. 「fork」 所谓fork,就是「把远程别人仓库的代码复制到远程自己仓库的代码」,fork完之后在自己远程本地

复制完地址后「clone到本地」

  1. 「merge reques」 现在是在我们自己的电脑,自己的码云账号上,所以能push。但是在工作中,肯定会有一个服务器来存放代码,在服务器上不可能存着这么多人的公钥,而且大家都能这么轻易地往上push的话,冲突也会增多,也不利于管理。

首先创建一个java文件,add commit push,这里的push也是只能push到「自己远程的仓库」 ,而组织的远程仓库是没有的。

要想远程的仓库也能有我们修改或者增加的文件,需要发起「merge request。GitLab上称为merge reques,GitHub或者Gitee上称为pull reques」。至于有没有区别,反正我使用起来没啥区别。 「首先来看看本地的pull request」 点我看gif图 添加对应的信息后就能够提交mr了,然后需要远程仓库的人进行审核,一般公司都会有规定的人来审核,看代码有没有错误,写得好不会,总的来说就是看能不能合入。 「再来看看远程仓库的pull request」

可以看到远程通过一系列的操作,成功的合入了代码,这些远程仓库中也有了修改后的代码,并且在自己的gitee上面会收到合入成功的信息。

「创作不易,如果对你有帮助,欢迎点赞,收藏和分享啦!」

「下面是个人公众号,有兴趣的可以关注一下,说不定就是你的宝藏公众号哦!!!」

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 咖啡编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 地基
  • 小木屋
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档