必会的 Git & GitHub

146 阅读4分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

前言

本文主要内容:Git和GitHub的基础使用。通过阅读实践这篇文章,你将会学会最基础的版本控制,并且能够实现将本地的项目上传到远程仓库中。

Git

git是一个分散式版本控制软件

以上也是来自维基百科的解释,而下文同样会从git存在的意义以及git的主要使用方法两个方面谈一谈

为什么要有git

要明确git的功能,首先要理解版本控制。

本文暂时不涉及多人协作的问题,单就个人开发过程中,一个项目在昨天还能正常运行,而经过今天一天的艰苦写bug与debug,到晚上却发现不能运行了。这时候问题就变得棘手了起来,写代码往往是最简单的一步,让代码顺利运行没有bug则是最痛苦最困难的一步。所以在又痛苦地debug一晚上后,依旧无法正常运行项目的你就会想,要是能回到我写bug前多好

git就为我们提供了这个功能,当你想向现有的项目中添加一个功能时,你可以先利用git创建一个分支,在分支上大展拳脚,如果能够顺利运行则并入主干;如果不幸又出了无法解决的bug,那么还有上一次的存档可以使用,只需要回到复活点即可。

当然git还有其他的妙用,比如在公司协作中或是开源软件中,这里仅仅作一个小小的引入

如何使用git

首先来看一下原有的两个如下,接下来将依次介绍使用的命令 image.png

git init

进入相应的文件夹(如此处进入了~/heheer/git_test),使用git init命令,就会在这个文件夹下同时新建一个.git文件夹,而这就是之后使用 git 的初始化 image.png

Windows 系统可以进入文件夹后,右键选择 git bash,也会出现相应的命令行界面,执行同样的代码即可。至于 git bash 在安装 git 后便有了,而如何安装 git 就不再赘述了

git status

初始化完成后,可以使用git status命令查看一下当前本地仓库的状态,就像这样,处在分支master上,没有文件被加入暂存区。后面也要经常使用这条命令来确认状态。

image.png

git add

一般最常用的是git add .,即上传当前目录下的所有文件。当然你也可以将.替换成具体的文件名来单独将需要的文件加入暂存区,以下是运行示意图: image.png

.gitignore

这并不是一条命令,而是一个文件 image.png 如上图,新建了一个test2.txt文件。创建一个.gitignore文件,通过文本编辑向其中写入test2.txt,再度执行git add .就会发现并没有将test2.txt加入暂存区 image.png

实际上文件名已经很直白了,git ignore即写入其中的便是需要忽略上传的文件或目录

git commit

执行git commit会将当前暂存区的文件一起创建一个提交, image.png 执行后会跳出窗口,可以在其中输入描述信息,比如我这就输入了Initialzation image.png

git branch

这条命令便是回调版本的关键,如下图中,我们创建一个新的分支new_b(确保master分支已经创建), image.png 然而此时仍然处于master分支,需要执行另一条git checkout <branch>命令转换分支。 于是我们就可以在新的分支下兴风作浪了 image.png 如图,创建了一个test3.txt,并且commit创建了一个提交。然而再回到master分支时,可以看到并不存在test3.txt,便能从这里重新创建一个分支进行写bug image.png

git commit是在这个分支下操作结束后必须执行的命令,否则新建的文件未被纳入版本管理,在切换分支时会被带到另一个分支

GitHub

正好打算将暑假仿照着写的博客传到github上,所以现在采用它作为例子

首先进入github,选择新建仓库,输入仓库名和描述后点击底部的创建 image.png 然后会跳转至一个新的页面,也有一些相关的操作提示 image.png 所以现在我想要将自己的博客上传,需要进入对应的文件夹,执行git remote等的一系列命令 在输入命令git push -u origin main后会需要输入username和password image.png 然而当你仅仅输入账号的用户名和密码时,会出现remote: Support for password authentication was removed on August 13, 2021.的报错。因为密码处需要输入名为token的标识,具体获取方式如下: image.png 点击你的头像,进入Settings->Developer settings->Personal access tokens目录,点击Generate new tokens,生成一个token,再将这个token粘贴至密码处即可 image.png 最后可以看到已经上传到github上了 image.png