type
status
date
slug
summary
tags
category
icon
password
😀
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。GitHub拥有1亿以上的开发人员,400万以上组织机构和3.3亿以上资料库。
 

📝 Git与Github学习历程(基础篇)

一、两者区别

Git是一个分布式版本控制系统,简单来说其就是一个软件,用于记录一个或若干个文件内容变化,以便将来查阅特定版本修改情况的软件。 Github(https://www.github.com)是一个为用户提供Git服务的网站,简单说就是一个可以放代码的地方(不过可以放的当然不仅是代码)。GitHub除了提供管理Git的web界面外,还提供订阅、关注、讨论组、在线编辑器等丰富功能。GitHub被称之为全球最大的基友网站。

二、Git使用

2.1本地仓库

工作流程 Git本地操作的三个区域: Git Repository(Git仓库) ——最终确定的文件保存到仓库,成为一个新的版本,并且对他人可见
 

2.2本地仓库操作

什么是仓库?
仓库又名版本库,英文名repository,我们可以简单理解成是一个目录,用于存放代码,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除等操作Git都能跟踪到。
(1)在安装好后首次使用需要先进行全局设置 桌面空白处,鼠标右键点击“Git Bash Here”以打开Git命令行窗口,然后输入:
(2)创建仓库 当我们需要让Git去管理某个新项目/已存在项目的时候,就需要创建仓库了。注意,创建仓库时使用的目录不一定要求是空目录,选择一个非空目录也是可以的,但是不建议在现有项目上来学习Git,否则造成的一切后果概不负责。 注意为了避免在学习或使用过程中出现各种奇葩问题,请不要使用包含中文的目录名(父目录亦是如此)。
表现:执行之后会在项目目录下创建“.git”的隐藏目录,这个目录是Git所创建的,不能删除,也不能随意更改其中的内容。
(3)Git常用指令操作
在后续对文件(可以操作1个或多个文件)操作之后,重复使用git add与git commit指令即可。 即:后续每一次进行文件操作过后都要执行b和c步骤。
注:git初始化及创建本地仓库的流程可见:git与github使用学习总结(基础篇)——本地仓库操作

2.3时光穿梭机——版本回退

版本回退分为两步骤进行操作: 步骤:
小结: a.要想回到过去,必须先得到commit id,然后通过git reset –hard进行回退; b.要想回到未来,需要使用git reflog进行历史操作查看,得到最新的commit id; c.在写回退指令的时候,commit id可以不用写全,git会自动识别,但是也不能写太少,至少需要写前4位字符。

三、Git使用补充:自定义指令及中文乱码处理

3.1为常用指令配置别名

有些常用的指令参数非常多,每次都要输入好多参数,我们可以使用别名。 (1)可以选择:Windows打开用户目录,创建.bashrc文件 (注:部分Windows系统不允许用户创建.号开头的文件) 所以我们可以选择打开gitBash命令行,执行 touch ~/.bashrc 此时,它会为我们在Windows用户目录下面创建这个文件。
(2)Windows下进入用户目录,打开.bashrc文件(使用代码编辑器打开即可,如:VSCode) (3)在代码编辑器的该文件中,输入:
然后保存退出编辑器。 (4)再次回到gitBash命令行,执行 source ~/.bashrc 进而实现常用指令别名配置。

3.2解决中文乱码问题

四、Github远程仓库的创建以及三种常规使用方式

4.1三种常规使用方式

第三种最简单,前面两种看不懂的读者最好尝试第三种。
4.1.1、基于http协议
(1)提交线上仓库:
注意直接使用git push会报错 在首次往线上仓库提交内容的时候出现了403的致命错误,原因是:不是任何人都可以往线上仓库提交内容,必须需要鉴权。
注意:这是博主本人亲自踩了的坑(鉴权操作完了才发现,这种方法在2021.8.13过后就失效了) (所以我们不再使用鉴权操作,直接使用GitHub token令牌操作)(令牌操作可以见CSDN,也可以见我下面的粗略总结)
 
鉴权操作(已经不需要了,读者可跳过本部分):(即:需要修改隐藏文件“git/config”文件的内容) (1)先打开git/config文件(使用记事本打开即可) (2)打开过后,我们需要将里面: [remote "origin"] url = https://github.com/用户名/仓库名.git 修改为: [remote "origin"] url = https://用户名:密码@github.com/用户名/仓库名.git 然后记得保存。 在进行完鉴权操作过后,再使用git push (注意:鉴权操作只需要进行一次就行了,除非重新创建了一个仓库)
 
另外,关于git基于hppt协议的具体操作流程可见我的另一篇文章:git基于http协议提交线上仓库
 
4.1.2基于ssh协议 参考链接:
 
4.1.3跟着GitHub的官方教程
在第一次创建应该新仓库时,GitHub会弹出一个帮助界面,跟着帮助界面依次执行其显示的代码,也能够实现本地仓库连接到远程仓库。
notion image

五、分支

5.1分支

引例:一个商城项目的开发分为:
 
用户模块(user分支)
商品模块(goods分支)
商城项目 完整的项目 订单模块(order分支)
物流模块(express分支) ······(众多其他分支)
 
相关人员完成一个分支模块的制作,最后要合并成一个完整的项目。
在版本回退的章节里面,每次提交后都会有记录,Git把它们串成时间线,形成类似于时间轴的东西,这个时间轴也就是一个分支,我们称之为main分支。(以前也叫master分支) 在开发的时候往往是团队协作,多人进行开发,因此光有一个分支是无法满足多人同时开发的需求的;并且如果在分支上工作是并不影响其他分支的正常使用,会更加安全,Git鼓励开发者使用分支去完成一些开发任务。
分支相关指令:
注:(1)查看分支时,注意当前分支前面有个标记“*” (2)在删除分支的时候,一定要先退出要删除的分支,然后才能删除。 (3)合并所有分支之后,需要将main分支提交到线上仓库中。

六、忽略文件

场景:在项目目录下有很多万年不变的目录,例如:css、js、images等,或者还有一些目录即便有改动,我们也不想让其提交到远程仓库的文档,此时我们可以使用“忽略文件”机制来实现需求。 忽略文件需要新建一个名为.gitignore的文件该文件用于声明忽略文件或不忽略文件的规则,规则对当前目录及其子目录生效。 注意:该文件因为没有文件名,没办法在Windows目录下直接创建,可以通过命令行Git Bash来touch创建。

🤗 总结归纳

本文主页介绍了本人学习git与GitHub的相关知识总结,如有问题,敬请指正。

📎 参考文章

  • 一些引用
  • 引用文章
 
💡
有关git使用上的问题,欢迎您在底部评论区留言,一起交流~
03-OpenCV绘制图形与文本git本地仓库操作
  • Giscus
  • Cusdis
  • Utterance
Naipings
Naipings
一个普通的大学生,分享自己学习的“有趣”知识
Announcement
type
status
date
slug
summary
tags
category
icon
password
🎉 感谢您的支持 🎉
-- 点击收藏不迷路 ---
👏欢迎更新体验👏