# 使用 VS Code 进行 Git 操作的教程 为了更好地使用 Git,下面是一篇通过 VS Code 使用 Git 的教程(基础操作,仅包含创建和提交)。 关于如何配置 SSH 请参考文章:[如何配置 SSH](https://qutcmrt.top/index.php/archives/195/) ## 第一步:安装 Git 插件 在扩展里搜索 Git,安装以下三个插件: - Git Graph - Git History - GitLens 这些插件非常好用,可以帮助你更直观地查看 Git 历史、分支和提交记录。 ![安装插件](https://qutcmrt.top/usr/uploads/2024/11/1784299241.png) ## 第二步:创建仓库 创建一个工程之后,用 VS Code 打开工程,进入源代码管理器,点击第一个初始化仓库按钮。 ![创建仓库](https://qutcmrt.top/usr/uploads/2024/11/1658756132.png) ## 第三步:提交代码 在进行代码提交之前,先为这次提交取一个名字,然后点击提交按钮。 ![提交代码](https://qutcmrt.top/usr/uploads/2024/11/1065970515.png) 提交之后,你可以查看每个版本的修改记录,并且可以随时切换到以前的版本。 ## 第四步:添加远程仓库 这里使用青理机器人战队的官方 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) ## 使用 .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 ```