关于git和github
作为程序员和开发者必定会接触到github,然而git和GitHub的操作具有一定的上手难度,(曾经多次劝退了小时候的我,到了大学才具体学习了相关的知识)但是这是作为一个开发者和程序员的一项重要技能,GitHub平台也是一个重要的程序员开源平台(世界上最大的男性交友平台),了解并熟练使用git和GitHub,可以大大提升我们的开发能力。
初步对git和github了解
我们为什么要使用git?想到我们在进行开发的时候经常要遇到一些问题,比如要和别人协作开发,要时刻记录代码的状态,亦或是在出现问题的时候可以重新回到之前的状态进行修改(否则就会不断叠加变得混乱了...)git都可以解决这些问题,我们需要记住一些专业词汇的英文,在网上学习时发现有一些英文不适合翻译过来,在日常交流这些东西的时候都是用英文的,比如pull request 的时候都是直接说pr的。
什么是git
Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。
在开发中,Git已成为现在主流的一种代码托管技术(版本管理工具),基本上大多数的公司都在使用Git进行协同开发。很多代码托管平台也是基于Git来实现的。
什么是GitHub
git的基本操作
- 克隆(clone):
从远程仓库克隆到本地的过程
本地仓库指的是我们开发人员从远程仓库克隆一份代码之后,保存在我们本地的代码,这份代码只有克隆的代码的开发人员可以看到。
- 分支(branch):
我们在开发中可能会遇到多个分支进行,比如主分支(main分支),开发分支(develop分支),但开发的时候,一般不在main上面进行开发,而是我们自己单独的从主分支或者开发分支中在分出来一条分支(比如test分支),然后我们就在test分支上进行开发,每个分支都有自己的代码。
- 提交(commit):
在我们的代码开发完成之后,需要将代码进行提交,提交的时候需要我们将修改的文件进行提交,并说明修改的内容。注意,此时代码提交只会提交到我们本地的仓库,远程仓库此时还不会修改。
- 拉取(pull):
开发中,同一个项目可能是多人协作开发,这个时候,我们就需要将别人修改的代码拉去下来合并到我们自己的代码中。但是如果不同的开发人员修改了统一部分代码,那么就可能发冲突,这时候我们需要解决完冲突时候,才能继续将代码进行提交。
- 合并(merge):
在上面我们自己的分支开发完成之后,没有问题之后,需要将我们的分支合并到主分支上面
- 推送(push):
之前的所有操作都是在我们本地进行的,远程仓库的代码并没有任何的改变,这个时候就需要我们将本地的代码推送到远程的仓库中,更新远程仓库代码。在推送的过程中,如果我们本地的代码不是最新版本的,就需要我们先将远程代码拉去下来(如果有冲突重新解决冲突,提交),然后在重新推送。
常用命令进行git操作
提交步骤
git init 初始化git仓库 (mac中Command+Shift+. 可以显示隐藏文件)
git status 查看文件状态
git add 文件列表 追踪文件
git commit -m 提交信息 向仓库中提交代码
git log 查看提交记录
撤销
用暂存区中的文件覆盖工作目录中的文件: git checkout 文件名
将文件从暂存区中删除: git rm --cached 文件名
将 git 仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录:git reset --hard commitID
分支命令
git branch 查看分支
git branch 分支名称 创建分支
git checkout 分支名称 切换分支
git merge 来源分支 合并分支 (备注:必须在master分支上才能合并develop分支)
git branch -d 分支名称 删除分支(分支被合并后才允许删除)(-D 强制删除)
暂时保存更改
在git中,可以暂时提取分支上所有的改动并存储,让开发人员得到一个干净的工作副本,临时转向其他工作。
使用场景:分支临时切换
存储临时改动:git stash
恢复改动:git stash pop
使用goland进行git与GitHub的操作
配置git和GitHub
注册GitHub:这个应该很简单,直接注册
配置git(非常重要,只有配置了才能事半功倍地使用):blog.csdn.net/weixin_4440…
Git的基本使用
Git里面主要包含的几个概念有远程仓库(remote),克隆,本地仓库,分支,提交,拉取,合并,推送等
远程仓库是指我们代码存储在服务器的地方,一般都是在GitHub上,这个仓库是我们整个团队中所有人都可以访问的地方。
idea的出现可以让我们不需要通过命令,直接鼠标点击就可以进行git操作。
首先新建一个仓库然后初始化git
这个等同于使用git add来是这个文件加入git
这里有很多连接本地git仓库的操作,比如,可以先建立远程仓库再通过ssh的git@GitHub.com:etopop/git.git,在goland中的project中的get from version control在url中输入URL的网址来创建本地的仓库
如果你刚才和我一样操作可以直接使用最下面的命令
刷新一下,你的远程仓库就已经可以看到了
如果你接下来想要继续更新内容的话,在commit之后,再push,或者直接commit and push,就可以直接在远程的仓库进行修改了
接下来就是有很多GitHub上与别人协作开发的十分重要的操作,如果你想对别人仓库作出一定的贡献,就可以下面的步骤来 可以通过issues来提出议题,提出一些项目的建议docs.GitHub.com/zh/issues/t…
如果像对某个人的仓库作出贡献,可以通过pr的形式来,首先fork别人在仓库在自己的仓库下面
然后在你的仓库下面就会出现你fork下来的的仓库
然后在这个克隆自己的仓库到本地,然后修改,commit,push之后就通过open pr来开始提交自己的修改到原主人的仓库(下面是我之前学校社团fork并pr的仓库)
写一下修改的标题和内容就可以create pull request了,接下来等待仓库原主人的审批了。
另外提一下,如果那个仓库的主人邀请你去一同参加创建这个项目,你可以直接修改这个项目的内容,就像对待你自己的项目一样,但是还是建议再创建一个分支,在自己的分支上修改推送自己的分支到主要的分支上去,这些东西可以留到进阶部分去完成
总结📑
GitHub的作用
www.GitHub-zh.com/getting-sta… 可以通过这个链接来查看GitHub的使用
git与GitHub之间的联系
作为一个大学生,当然有很多福利,比如jet brain的产品,以及github copliot,可以大大提高写代码的效率,这里介绍一下如何申请github education。
官方文档:docs.github.com/zh/educatio…
在注册完帐号以及填写好账号的信息之后,进入这个网址education.github.com/discount_re…
选择学生身份,填写.edu结尾的邮箱就可以
一定要手机直接拍摄实物,检查的人会看出来的,最后点击processing等待结果就行了,大概会两到三天,最后有approve就行了
结语
文章中引用了一些链接和图片,都是学校学长提供和博客收藏的,感谢大家!!