百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

Git和GitHub新手使用超详细教程

wptr33 2025-01-16 21:12 19 浏览

今天来讲一个程序员都用得到的工具,那就是Git,相信对此都并不陌生。我们所开发出来的项目最终都是要部署在服务器上的,那么在开发过程中并非一次就能全部完成,中途可能需要进行优化相关功能、添加相关功能或者减少相关功能等等的操作。这时有一个代码管理工具就显的尤为重要,它不仅可以帮助我们管理项目的版本,还可以随时随地回到想要的任何状态,可谓是项目的管理神器。

下面就来详细的介绍下这个工具的安装以及使用方法,这里要讲的知识点有很多,图文也很多,需要耐心看完,下面就逐步来介绍。

这里以Windows系统为例,首先我们要去官网下载所需的安装包。

将下载好的安装包进行安装,这里不需要注意,直接点击“next”即可,属于是傻瓜式安装,直到出现下面的页面,点击“finish”即可安装完成。

在安装完成后,直接在启动栏有快捷启动方式,可以直接在桌面右击鼠标,可以找到“Git Bash”,进入到操作界面。

1、进入界面后,首先要进行的是初始化仓库,运行命令“git init”

运行完成后,会在当前目录的文件夹下多出一个隐藏文件“.git”,这时不需要理会这个隐藏文件是干嘛的,它是在初始化仓库后自动创建的文件。

然后再运行命令“git status”,可以看到当前文件夹里的文件,我们可以看到这时文件夹下是没有任何文件的。

2、在当前文件下创建一个文件,来进行添加和提交操作。

这时再使用命令“git status”来看看有什么变化?

此时可以看到文件夹里有显示文件了,但是不支持中文。没关系,这都不是问题,可以使用下面的命令

此时让我们再来看下现实的结果。

这时的中文文件名已经可以正常显示了,但是在这里有点小建议,还是使用英文来命名,尽量不要使用中文来命名。


下面就该干正事了,添加文件,使用git add <FileName>命令上传。

但是此种做法的上传只能上传一个文件,如果在文件夹中有多个文件的话,要是一个一个上传的话,就有点不科学了。这里有一个命令可以将文件全部上传:git add -A

所以此时我们选择使用这个命令来上传

运行完成后,没有给我任何的提示?没关系,可以使用git status来检查下结果

此时可以看到有提示 “changes to be committed”,说明已经添加成功,可以执行后面的命令commit了,下面有显示添加的文件名。


下面来执行 git commit -m "提交信息" 的命令,引号内填写提交的信息,方便日后的查看和管理。

在提交成功后,可以使用git log来查看提交的日志。

这样就完成提交了。


3、文件的修改

如果文件里面的内容进行了修改,然后我们使用git status来看有什么变化

这时我们看到的提示信息跟之前的不一样,如果想要看看具体的变化信息,可以使用git diff命令来查看

此时可以看到前面的加号或者减号,加号代表添加,减少代表删除

这样就可以很清楚的了解都干了些什么,哪里更改了,哪里添加了什么内容。

如果说对刚才的添加不满意,或者想要撤销,也是可以的。可以直接执行命令

这个执行完成后,也没有任何提示,那么还是使用git status来检查下。

上一个的status的提示已经不见了。在来检查下文件,发现已经还原了。


下面我们再接着来继续添加git add -A

这时使用git log命令来查看之前提交的记录

可以看到,有两次提交的记录版本


4、版本回退

在平常的工作中,如果在之前的版本上进行了一次修改,后来在使用时出现了问题,那么此时就想要回到最初的那个版本,这时应该怎么办呢?版本回退可以解决这个尴尬的问题。


我们可以从上面的信息看到,有两行commit开头的,后面跟了很长的数,这就版本号,并且是唯一的,没有两个相同的版本。下面还有作者和日期的信息。


版本回退就是根据版本号来实现的,需要执行命令git reset --hard + 版本号(这里只需要版本号的前7位就可以)

这时就已经回到指定的版本了,现在再来看下git log

可以看到只有一条记录,后来添加的记录被清除了。

那么如何回到最新版呢?先来执行git reflog

可以看到head的变化情况

第一行是表示当前的版本号。之所以会有这个版本,是由于我们执行了reset命令。

第二行的版本号出现是,这个是在执行commit命令之后形成的。

这时我们再用一次reset,将head指向 e5ca7c9,同时查看log

这时就回到第一次reset的状态了


5、清除未追踪的文件

通常在reset或者pull之后要做两件事情

a:将新添加且未追踪的文件删除

b:已追踪的文件有修改,但有不需要这些修改,将它们还原。


这时用checkout是没办法删除掉的,需要使用git clean -xf


下面这是执行命令前后执行命令后的对比


这个命令会删除掉为追踪的文件。‘delete.txt’文件就是没有被追踪的文件,所以就被清理了。


Git和GitHub进行关联


1、没有GitHub账号,没关系,直接打官网进行注册一个即可,地址为:https://github.com

2、本地配置用户名和邮箱

git config --global user.name ‘用户名’
git config --global user.email ‘邮箱’


这是一种方法,还有一种方式是直接在文件里进行修改。

文件的位置在 C:/users/你的电脑用户名/.gitconfig,也可以在这里直接添加信息。

3、生成SSH key

在命令行输入命令 ssh-keygen -t rsa -C “邮箱地址”,中间会有三次提示输入,不用做任何改动,直接回车即可。

将执行生成的ssh key 复制到剪贴板,执行 clip < ~/.ssh/id_rsa.pub,或者是倒上面执行的文件里去复制。

4、连接GitHub

打开GitHub,进入到settings

找到SSH and GPG keys


这里的标题随便写,不影响,可以为中文,也可以为英文。最后在把key粘贴在下面的框里

最后点击Add SSH key就添加成功了

添加完后后,可以测试下连接是否成功,输入命令

看到这样的消息证明连接成功了


创建远程仓库和本地关联

1、点击创建远程仓库

输入远程仓库名。这里有公有的和私有的,我们创建公有的

最后点击Create repository,就创建完成。


2、将远程仓库和本地仓库连接起来

现在GitHub上复制远程仓库的ssh地址

有两种方式可以关联,一种是ssh,一种是HTTPS,由于HTTPS较慢,我们选择试用ssh

ssh的地址格式是这样开头的 git@github.com,然后执行命令

然后上传文件,在创建repository的时候,加入了README.md或者LICENSE,这是GitHub或拒绝你的push推送。需要先执行

再执行

这表明关联成功了。以后想要更新文件到GitHub上,在执行完commit后再执行git push就可以实现同步了。


码子不易,如果有帮助到您,感谢支持

相关推荐

威信Chronosonic XVX全新旗舰全球首发 设计特点彻底公开

第一眼看到WilsonAudio新推出的ChronosonicXVX音箱,相信大家都会直觉认为它是两年前超级旗舰WAMMMasterChronosonic的缩小版,不过这个推测并不完全正确。C...

C#高精度Timer和Delay以及时间测量

在PCHMI7.0后在工具箱里会多一个MsTimer,以及Delay和Microsecond两个类。...

python教程从基础到精通,第9课—日期与时间

Hello,小伙伴们,祝大家五.一玩得快乐!刚学习完了七大数据类型,今天咱们来学习日期与时间的表示方法。Python标准库中提供了时间和日期的支持:calendar:日历相关;time、datetim...

软件测试|教你轻松玩转Python日期时间

Python基础之日期时间处理...

Go语言中互斥锁与读写锁,你知多少?

简述Golang中的锁机制主要包含互斥锁和读写锁互斥锁互斥锁是传统并发程序对共享资源进行控制访问的主要手段。在Go中主要使用sync.Mutex的结构体表示。一个简单的示例:funcmutex()...

变形金刚动画大电影——经典台词赏析

YOURDAYSARENUMBEREDNOW,DECEPTI-CREEPS你们活不了多久了,霸天虎小子。-{铁皮说的话,体现了铁皮的嫉恶如仇,可是后来铁皮在飞船上遇袭身亡,可谓是出师未捷身先...

Python时间日期模块使用教程(python3日期)

1.时间日期处理概述在日常编程中,时间日期处理是非常常见的需求,比如:记录日志时间...

亚马逊介绍AWS“无服务器”云服务改进:数据库可线上扩充容量等

IT之家11月29日消息,在今天于美国拉斯维加斯展开的亚马逊“AWSre:Invent2023”活动中,亚马逊计算部门资深副总裁PeterDeSantis,介绍了旗下三款云端服务,IT...

2.日期格式 datetime(日期时间显示格式)

fromdatetimeimportdatetime1.获取当前日期和时间now=datetime.now()#2025-05-3110:56:01.4687822.格式化日期...

【科普】时间单位大盘点(时间单位都有哪些?)

时间单位,是7种基本单位之一,长度、时间、质量、物质的量、光照度、电流和(热力学)温度是七种基本单位。本词条中时间单位以时间从大到小列。今天我们来盘点下时间的单位换算...

基于PHP的Laravel框架,盘点Github高星Web管理后台,效率为王!

在Web开发工作中,选择一个高效、稳定的后台管理系统是提高开发效率的关键。虽然PHP在近些年中的热度有所减退,但其上手简单、开源、灵活且被广泛应用的特点,仍然使其在编程语言排行榜中保持前十的位置。这表...

如何使用PHP编写一个简单的留言板?

留言板是一个常见的Web应用程序,允许用户在网站上发布和查看留言。在本文中,我们将使用PHP编写一个简单的留言板,介绍构建过程中的关键步骤和技巧。一、准备工作在开始编写留言板之前,我们需要准备好以下工...

产品经理提需求时要考虑的 15 个隐性需求

虽然世界充满未知的变化,但是有一些大的方向还是可以把握的,本文跟大家谈谈产品经理提需求时要考虑的15个隐性需求,enjoy~俗话说,计划赶不上变化快,无论需求文档做得如何细致,考虑得如何周全,总会...

关于 PHP 启动 MongoDb 找不到指定模块问题

前言:最近有一个小demo,需要通过PHP将用户行为记录储存到MongoDB,再用Spark做协同过滤。由于以前处理跨语言交互是通过消息中间件,这次本地使用MongoDB却弄出了几个问...

PHP程序员老鸟面试经历(php程序员怎么样)

在任何时代找任何工作都有面试这么一说的。特别是高端技术类的工种对技术理论和技术实操能力要求很严格。大部分公司招收技术员工的要求也越来愈高。至于PHP程序员也是如此,我估计大多数PHP老鸟已经不在意所...