git/README.md

133 lines
3.4 KiB
Markdown
Raw Normal View History

2024-11-12 23:48:19 +08:00
# 使用 VS Code 进行 Git 操作的教程
2024-11-12 23:53:52 +08:00
为了更好地使用 Git下面是一篇通过 VS Code 使用 Git 的教程(基础操作,仅包含创建和提交)。
2024-11-12 23:48:19 +08:00
2024-11-12 23:53:52 +08:00
关于如何配置 SSH 请参考文章:[如何配置 SSH](https://qutcmrt.top/index.php/archives/195/)
2024-11-13 00:06:21 +08:00
2024-11-12 23:48:19 +08:00
## 第一步:安装 Git 插件
在扩展里搜索 Git安装以下三个插件
- Git Graph
- Git History
- GitLens
2024-11-12 23:53:52 +08:00
这些插件非常好用,可以帮助你更直观地查看 Git 历史、分支和提交记录。
2024-11-12 23:48:19 +08:00
![安装插件](https://qutcmrt.top/usr/uploads/2024/11/1784299241.png)
## 第二步:创建仓库
2024-11-12 23:53:52 +08:00
创建一个工程之后,用 VS Code 打开工程,进入源代码管理器,点击第一个初始化仓库按钮。
2024-11-12 23:48:19 +08:00
![创建仓库](https://qutcmrt.top/usr/uploads/2024/11/1658756132.png)
## 第三步:提交代码
2024-11-12 23:53:52 +08:00
在进行代码提交之前,先为这次提交取一个名字,然后点击提交按钮。
2024-11-12 23:48:19 +08:00
![提交代码](https://qutcmrt.top/usr/uploads/2024/11/1065970515.png)
2024-11-12 23:53:52 +08:00
提交之后,你可以查看每个版本的修改记录,并且可以随时切换到以前的版本。
2024-11-12 23:48:19 +08:00
## 第四步:添加远程仓库
这里使用青理机器人战队的官方 Gitea 为例。
1. 登录 Gitea创建仓库填写仓库名称。
![创建远程仓库](https://qutcmrt.top/usr/uploads/2024/11/1450812280.png)
2. 创建之后,进入仓库,此时仓库还没有任何内容。根据提示内容链接远程仓库。
![链接远程仓库](https://qutcmrt.top/usr/uploads/2024/11/2615099837.png)
由于我们已经在本地创建了仓库,所以只需要执行以下步骤:
```sh
git remote add origin ssh://git@gitea.qutcmrt.top:222/Robofish/git.git
git push -u origin main
```
![推送代码](https://qutcmrt.top/usr/uploads/2024/11/1041488949.png)
成功创建远程仓库!之后进入 Gitea 即可分享和下载代码。
![成功创建](https://qutcmrt.top/usr/uploads/2024/11/4003579224.png)
2024-11-13 00:06:21 +08:00
## 使用 .gitignore 节约服务器资源
为了节约服务器资源,请在上传时使用 `.gitignore` 文件,将编译文件等不要上传。
### .gitignore 规范
这里我们列举出比较重要的几种规范,如下所示:
- `#``#` 开头的为注释内容
- 正则表达式:可以使用正则表达式来进行模式匹配,默认会递归循环整个目录
- `*` : 匹配单个或多个字符
- `**` : 匹配多级目录
- `?` : 匹配单个字符
- `[abc]` : 匹配 a、b、c 中的任意一个字符
- `[a-c]` : 匹配 a~c 之间的任意一个字符
- `/` 开头:只在当前目录匹配,不进行递归,比如 `/src` 表示只匹配当前目录的 src 文件或目录,不去其他目录匹配
- `/` 结尾:只匹配目录,不匹配文件,比如 `target/` 表示只匹配 target 目录,不匹配 target 文件
- `!` 开头: 取反,不匹配指定的文件或目录,比如 `!main.xml` 表示不排除所有的 main.xml 文件
### 举例
```gitignore
# ---> ROS
devel/
logs/
build/
bin/
lib/
msg_gen/
srv_gen/
msg/*Action.msg
msg/*ActionFeedback.msg
msg/*ActionGoal.msg
msg/*ActionResult.msg
msg/*Feedback.msg
msg/*Goal.msg
msg/*Result.msg
msg/_*.py
build_isolated/
devel_isolated/
# Generated by dynamic reconfigure
*.cfgc
/cfg/cpp/
/cfg/*.py
# Ignore generated docs
*.dox
*.wikidoc
# eclipse stuff
.project
.cproject
# qcreator stuff
CMakeLists.txt.user
srv/_*.py
*.pcd
*.pyc
qtcreator-*
*.user
/planning/cfg
/planning/docs
/planning/src
*~
# Emacs
.#*
# Catkin custom files
CATKIN_IGNORE
.catkin_workspace
```