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
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
## 第二步:创建仓库
|
|
|
|
|
|
2024-11-12 23:53:52 +08:00
|
|
|
|
创建一个工程之后,用 VS Code 打开工程,进入源代码管理器,点击第一个初始化仓库按钮。
|
2024-11-12 23:48:19 +08:00
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
## 第三步:提交代码
|
|
|
|
|
|
2024-11-12 23:53:52 +08:00
|
|
|
|
在进行代码提交之前,先为这次提交取一个名字,然后点击提交按钮。
|
2024-11-12 23:48:19 +08:00
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
2024-11-12 23:53:52 +08:00
|
|
|
|
提交之后,你可以查看每个版本的修改记录,并且可以随时切换到以前的版本。
|
2024-11-12 23:48:19 +08:00
|
|
|
|
|
|
|
|
|
## 第四步:添加远程仓库
|
|
|
|
|
|
|
|
|
|
这里使用青理机器人战队的官方 Gitea 为例。
|
|
|
|
|
|
|
|
|
|
1. 登录 Gitea,创建仓库,填写仓库名称。
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
2. 创建之后,进入仓库,此时仓库还没有任何内容。根据提示内容链接远程仓库。
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
由于我们已经在本地创建了仓库,所以只需要执行以下步骤:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
git remote add origin ssh://git@gitea.qutcmrt.top:222/Robofish/git.git
|
|
|
|
|
git push -u origin main
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
成功创建远程仓库!之后进入 Gitea 即可分享和下载代码。
|
|
|
|
|
|
|
|
|
|

|
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
|
|
|
|
|
```
|