目录
我们在玩游戏的时候,通常会有存档这一功能。
写代码有时也会感觉'还是之前那一版本的好',所以也会想要存档,这样就算改完之后代码直接罢工,也可以根据存档回到之前的版本。
这时候就需要Git了,Git是一个本地软件,安装在电脑上,负责记录和存档。
1.下载安装
访问官方网站链接: git-scm.com,点击页面右侧那台电脑屏幕里的 "Download for Windows" 按钮。
下载完成后,双击打开 .exe 安装包。一路上基本可以无脑点击 Next(下一步),但以下几个关键界面建议稍微留心:
- 选择默认编辑器:默认是 Vim,建议在下拉菜单中把它改成 "Use Visual Studio Code as Git's default editor"(使用 VS Code 作为默认编辑器)。
- 调整新仓库中初始分支的名称:建议选择第二个选项:"Override the default branch name for new repositories",并在输入框里写 main。
- 配置环境变量:保持默认即可,这样 VS Code 才能自动找到 Git。
- 选择后端传输连接器:保持默认的 "OpenSSH"。
最后在cmd中使用以下命令即可验证安装:
bash
git --version
2.使用
在正式点击按钮之前,Git 需要知道是谁在写代码。我们需要在 VS Code 底部打开 终端(Terminal),敲入两行命令:
bash
git config --global user.name "你的GitHub用户名"
git config --global user.email "你的注册邮箱"
这里需要提前注册github账号。
然后新建一个文件夹,使用vscode打开。
点击 VS Code 左侧边栏那个长得像"三叉戟/分叉树枝"的图标(技术术语叫:源代码管理,Source Control)。
此时你会看到一个蓝色按钮:初始化仓库 (Initialize Repository)。点击之后,就会在你的项目里多一个.git的隐藏文件夹。
此时更改项目文件中的内容,点击再次提交,就能看到有两个本地存档了。
在本地存储了之后,就会发现原本的提交按钮变成了一个蓝色的 发布分支 (Publish Branch) 按钮。
这时候就要说说git和github的区别了。
git是本地代码存档的管理工具。但是如果想让别人也看到的话,就需要上传到GitHub。就像是steam游戏中,你可以在游戏中存档,退出来之后就会看到图标旁边的已上传steam云端。这时候就算是电脑被砸了也能通过云端下载存档。
点击Publish Branch:VS Code 会弹窗提示你登录 GitHub 并授权。
登录之后,选择上传,选择隐私级别,可以选公开或者私有。
之后一般会报错。
这一步的解决办法有几种,这里只说如何配置SSH。
首先检查并清除之前的乱麻设置:
bash
git config --global --unset http.proxy
git config --global --unset https.proxy
然后设置一把专属钥匙:
bash
ssh-keygen -t ed25519 -C "你的注册邮箱"
一直下一步,出现那副随机艺术图之后,就代表钥匙配好了。
然后就需要查看并把钥匙的内容复制出来:
bash
cat ~/.ssh/id_ed25519.pubb
登录github,点击右上角头像,选择Settings。
找到并点击 SSH and GPG keys,选择New SSH key。
Title随便填,把复制的钥匙填进Key里面就行了。
之后,回到VS Code终端,输入以下命令:
bash
# 1. 删掉之前那个总报错的 HTTPS 远程连接
git remote remove origin
# 2. 重新绑定为 SSH 连接(注意这里是 git@github.com 开头的网址!)
git remote add origin git@github.com:【你的用户名】/forward.git
现在,再次点击提交就不会报错,并且你还可以在github上看到你的项目文件!
3.Git命令
你可能会问:有了图形界面,为什么还要学命令?
我们可以用一个形象的比喻:VS Code 的 Git 按钮就像是汽车的"自动挡",而 Git 命令行则是"手动挡"。
平时开自动挡确实省力,但在一些极端、复杂的路况下,只有老司机切换到手动挡才能救命。
以下是常用的命令:
| 分类 | 核心命令 | 运行效果(大白话解释) | 最佳使用场景 |
|---|---|---|---|
| 项目初始化 | git init |
在当前文件夹创建一个隐藏的 .git 库 |
新项目开荒,第一次让 Git 介入追踪 |
git clone <网址> |
下载网络上的项目到本地,并自带 Git 历史 | 想在本地研究别人的开源项目,或下载自己的备份 | |
| 本地状态查看 | git status |
检查哪些文件被修改、删除或新增了(红/绿字提示) | 敲任何保存命令前,先敲它看一眼状态(防漏安全网) |
| 日常存盘三部曲 | git add . |
把所有修改过的文件塞进"暂存区快递盒" | 写完一段代码,准备打包(注意中间有空格和点) |
git commit -m "笔记" |
正式封箱并贴上标签,生成永久的本地存档点 | 确认代码没问题了,存个盘,方便以后随时回滚 | |
| 云端同步(飞天) | git push |
把本地最新的所有 Commit 档案推送到 GitHub | 本地写完并 Commit 之后,把成果同步到云端 |
git pull |
把云端最新的代码拉下来,并自动合并到本地 | 开始写代码前,或者团队协作时,同步别人的最新代码 | |
| 翻历史与后悔药 | git log |
打印出过去所有 commit 的历史时间线和版本 ID | 出了 Bug 想查账,或者想找以前的版本 ID |
git reset --hard <ID> |
抹除当前改动,强制把整个项目倒流回指定的历史版本 | 代码彻底写崩了,需要时光倒流(高能危险命令) | |
| 分支管理(平行宇宙) | git branch |
列出本地所有的分支,并用 * 号标出当前所在 |
想知道自己现在在哪个平行宇宙写代码 |
git checkout -b <名字> |
创建一个新的平行分支,并瞬间切换过去 | 准备开发一个新功能,不想影响主线代码 | |
git merge <分支名> |
把指定分支的代码合并到当前所在的分支里 | 新功能在分支上写好并测试完了,合并回主线 |