Skip to content

Git 入门指北 ​

Git 有啥用? ​

Git 是一个很好用的代码管理工具,从这方面来说,其实 Git 也可以拿来当网盘来着。其实我也不是很了解的,不过也用了很久了,也可以小小总结一下。

网上已经有很多的教程和攻略,我主要谈谈自己的理解和印象了。Git 可以保存下来我喜欢的代码,可以同步代码方便在不同设备进行工作,可以回退到以前的版本,结合 Github pages 或 Cloudflare 可以很方便地构建静态网站。

创建第一(?)个仓库 ​

基于 Git 的代码托管平台主要有 Github,GitLab,Gitee,基础的操作都差不多,目前没用过 GitLab,这里主要以 Gitee 为例。

首先我们创建一个仓库,点击头像左侧的加号可创建仓库,取一个仓库名称,Gitee 现在会自动生成路径。这个我不太了解,主要用 GitHub,不过感觉尽量取一样的比较好。

其他内容都不需要管,保持默认即可,可以看看是否和我这里一样,点击创建。创建成功后,会出现这样的页面。其实直接复制第一块命令和第二块,就可以完成创建和上传,但是当熟练之后其实没有必要,并且我们这里了解一些这些命令是干啥的。

以下所有出现的代码块,均为命令行命令,粘贴进命令行运行。

Git 信息设置 ​

我们提交代码时,需要让 Git 知道是谁提交了代码,所以需要配置用户名和邮箱。这里的 --global 代表我们设置的是全局的信息。

这里其实就是上方页面的第一块的部分,如果你创建仓库后显示了着一块,直接复制即可。如果没有,把 " " 里的内容替换为你的用户名和邮箱就可。建议设置成 gitee 或 github 的用户名或邮箱,不设置成这样应该也行。

bash
git config --global user.name "fwdzh"
git config --global user.email "wu_yi_@outlook.com"

创建仓库 ​

初始化 ​

选择一个文件夹作为你的 Git 仓库,命令行里进入对应的文件夹,如果你不知道该怎么做,使用 VS Code 打开那个文件夹。

按 Ctrl + ` 可以打开VS Code 的终端。如果发现 Ctrl + v 无法在 VS Code 终端中粘贴内容,试试 Ctrl + Shift + v。

bash
git init

首先需要运行这个命令来初始化 Git 仓库,这会在该文件下新建一个名为 .git 的文件夹,但是 VS Code 和 Windows 文件管理器默认会隐藏这个文件夹。

连接远程仓库 ​

目前我们只创建了本地仓库,并未与远程仓库连接。

这个里面是我的 gitee 仓库的链接哈,创好仓库之后第一行就有 https 链接的,可以直接复制替换一下。或者那个第二块的代码的倒数第二行其实就是这个,复制一下即可。

bash
git remote add origin https://gitee.com/fwdzh/example.git

git remote add 就是添加远程仓库的,origin 相当于是我们给这个远程仓库取的名字,也可以叫别的,但默认都会叫 origin。先不必管这个。

添加之后,输入

bash
git remote -v

检查是否连上了远程仓库,如果连上了,大概会显示这样的内容。

提交与推送 ​

目前我们的仓库是空的,因此需要添加一些文件。

随便创建一个文件,然后输入

bash
git add .
git commit -m "First Commit"

git add 命令是将文件提交到暂存区的,后面跟的是文件或文件夹的相对路径,. 表示的就是当前的整个文件夹。因此这个命令会将整个文件夹中的文件提交到暂存区。

git commit -m 可以理解为给你的提交评论,说明你修改了啥东西,后面跟一个字符串,可以是任何你想写的内容。这个是必须要填的,相当于正式地提交修改,但不会同步到远程仓库。

推送代码:

bash
git push -u origin master

只有第一次需要这样输入,因为 -u 会设置以后默认推送到 origin 的 master 分支,暂时不用理会这些。

若成功,应该需要输入账号密码,或在浏览器认证。

若成功,大概会这样显示,我输错了,用了个 git push,那个失败了,不需要管。

成功推送之后,回到浏览器看 gitee 仓库,里面会有刚才我们推送的文件。

以后每次修改文件推送,大概的流程就是

bash
git add .
git commit -m "msg"
git push

不一定要 git add . ,这里举个例子,实际开发应该不推荐每次都提交整个文件夹。刚入门的话就这样用也没问题。

commit 的 msg 替换成自己想 commit 的内容。

由于我们第一次推送用的是 git push -u origin master,之后再提交代码只需要用 git push 就可以了。

如何抄作业 ​

举个例子,比如你要把别人的仓库弄一份到自己这来。

点击仓库首页的 克隆/下载,会出现这个,第一行是这个仓库的地址,第二行是克隆这个仓库到本地的命令,其实就是地址前面加了个 git clone。

一般你要下载到本地,直接复制第二个即可。默认会下载到当前文件夹下,文件夹的名字一般和仓库名相同。

可以指定路径,比如

bash
git clone https://gitee.com/fwdzh/example.git ./test

会把这个 git 仓库下载到当前目录下的 /test 文件夹。

此时这个文件夹里是会有 .git 文件夹的,如果你尝试做刚才类似的添加远程仓库的操作,会发现失败了。因为当前仓库已经关联了远程仓库。

输入

bash
git remote -v

可以查看远程仓库信息。

默认一般是 origin 啥的,我们可以删除掉这个远程连接,但是如果删了在添加自己的,再推送,我们的仓库会有原仓库的提交。因为历史的 commit 信息都是存在 .git 文件夹里的,所以直接删掉那个文件夹就可以了。这样我们的本地文件夹变成了非 git 文件夹。

再按刚才的 git init,git remote add origin 等操作来一次就好了。

fork ​

fork 就是把别人的仓库复制一份到我们自己的仓库,并且可以追踪原本的仓库,以后可以拉取更新。

比如你看到一个仓库比较有意思,想拉取一份自己开发一些新功能或者方便学习,可以使用 fork,fork 的仓库,会显示原本仓库的提交记录,也会显示你的仓库是从哪个仓库 fork 的。

ssh 连接 ​

如果你的操作系统或者 IDE 无法记忆密码,你可能每次推送代码都需要输入密码,非常麻烦,我们可以使用 ssh 连接。

以及国内访问 github 可能会很卡,不设置 git 代理经常推送失败 443 端口超时之类的,使用 ssh 可以避免?可能是,不过我一般是挂代理。

创建公钥 ​

我们首先需要创建并导入 ssh 公钥。

bash
ssh-keygen -t ed25519

-t 是指定密钥类型,ed25519 的密钥会很短,我用的这个,如果失败了,可以改成 ssh-keygen -t rsa。我以前看的教程都是生成 rsa 来着。

然后一直回车/yes就行,生成好的密钥在用户文件夹下的 .ssh 文件夹,复制 id_ed22519.pub 里的内容,大概是这个名字吧,rsa 则是 id_rsa。去 gitee/github 的个人设置,找到添加公钥,随便取个名就行。

ssh 连接 ​

如果之前已经用 https 连接,需要先删除。

输入 git remote -v 查看远程信息,删除不必要的。

比如我这个,默认是 origin 是 https 连接的,链接前面有 https 就是 https……

然后再去这里,点上面的 ssh,复制这个链接。

bash
git remote add origin master "你的链接"
git remote -v

添加远程仓库并查看远程信息,若为 git@ 这样,则连上 ssh 了,以后推送就不需要输入密码了。

不过由于我们删除了先前的 origin 分支,下一次推送需要使用 git push -u origin master,然后之后还是 git push 就行。

其他 ​

GitHub 默认分支是 main,所以可能需要把这里的 git push -u origin master 改成 git push -u orgin main,可能还要用 git branch 切换分支到 main。

GitHub Pages 可以免费部署静态页面,GitHub Actions 可以自动构建/部署,Cloudflare 和 GitLab 也有类似功能,用这些可以弄一些博客啥的,也都很简单,很多不用写什么代码。

啊啊啊,好像也没写啥东西,但是花了两小时,而且写出来可能也没啥意义。就这样吧!