133 lines
3.4 KiB
Markdown
133 lines
3.4 KiB
Markdown
# 使用 VS Code 进行 Git 操作的教程
|
||
|
||
为了更好地使用 Git,下面是一篇通过 VS Code 使用 Git 的教程(基础操作,仅包含创建和提交)。
|
||
|
||
关于如何配置 SSH 请参考文章:[如何配置 SSH](https://qutcmrt.top/index.php/archives/195/)
|
||
|
||
## 第一步:安装 Git 插件
|
||
|
||
在扩展里搜索 Git,安装以下三个插件:
|
||
- Git Graph
|
||
- Git History
|
||
- GitLens
|
||
|
||
这些插件非常好用,可以帮助你更直观地查看 Git 历史、分支和提交记录。
|
||
|
||

|
||
|
||
## 第二步:创建仓库
|
||
|
||
创建一个工程之后,用 VS Code 打开工程,进入源代码管理器,点击第一个初始化仓库按钮。
|
||
|
||

|
||
|
||
## 第三步:提交代码
|
||
|
||
在进行代码提交之前,先为这次提交取一个名字,然后点击提交按钮。
|
||
|
||

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

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

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

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

|
||
|
||
## 使用 .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
|
||
``` |