VSCode 终端赋能:CentOS 与 Gitee 代码互传
要实现一个代码文件如下图所示的互传,VSCode相当于一个桥梁,选择它作为桥梁是因为跨平台兼容性强,可以在Windows、Linux等主流操作系统上使用,并且具备强大的调试工具,也集成了Git工具。①通过“Remote-SSH”插件,实现SSH远程连接,就可以在VSCode本地窗口直接访问和操作CentOS远程服务器上的文件、运行程序等,十分便捷。
一.思路介绍
要实现一个代码文件如下图所示的互传,VSCode相当于一个桥梁,选择它作为桥梁是因为跨平台兼容性强,可以在Windows、Linux等主流操作系统上使用,并且具备强大的调试工具,也集成了Git工具。

①通过“Remote-SSH”插件,实现SSH远程连接,就可以在VSCode本地窗口直接访问和操作CentOS远程服务器上的文件、运行程序等,十分便捷。
②在VSCode终端通过命令将CentOS上的代码上传到Gitee仓库上,主要命令包括:git add,git commit -m,git push origin master。
③在VSCode终端通过命令将Gitee仓库上的代码拉取到本地,确保已安装 Git,登录 Gitee 账号找到目标仓库,使用git clone "仓库链接"命令,Git 会自动将远程仓库代码下载到指定本地目录,完成后即可在该目录查看和操作拉取的代码。
二.准备工作
1.VSCode的安装
进入网页:Download Visual Studio Code - Mac, Linux, Windows安装软件,安装完成后需要安装插件,点击第五个图标,搜索“C/C++”完成安装


2.VMware的安装
进入网页:VMware by Broadcom - Cloud Computing for the Enterprise安装VMware,这样就安装完成了

3.VMware 创建的虚拟机环境中安装 CentOS 操作系统
进入网页:centos-vault-7.6.1810-isos-x86_64安装包下载_开源镜像站-阿里云安装CentOS的镜像文件,选择第三个进行下载

这样就算安装完成了,但是后续需要更改里面的镜像文件改成国内的比如阿里云,清华大学等镜像源,能提供更稳定的服务,减少因网络波动或国外源故障导致的问题。

4.注册并登录Gitee账号,创建仓库
进入网页:Gitee - 基于 Git 的代码托管和研发协作平台注册一个账号并且登录,完成之后需要创建一个仓库

输入仓库名称、介绍等,完成创建

三.通过“Remote-SSH”插件,实现SSH远程连接
1.打开VSCode,点击左下角打开远程窗口

2.选择第一个"Connect to Host"

3.在CentOS上查看ip地址,如图所示,IP地址就是ens33下的,输入:root@192.168.xx.xxx,按回车添加主机

4.选择Linux

5.连接成功的话如下图所示,就可以直接在VSCode终端控制CentOS上的代码了

四.在VSCode终端将CentOS上的代码上传到Gitee仓库
1.切换到要上传代码的目录,在终端输入命令:git init,初始化仓库;在Gitee上找到刚刚创建的仓库,找到这两个命令,在终端输入


2.使用命令:ssh-keygen -t rsa -C your_email@example.com,来配置密钥,按三次回车;使用命令:cat ~/.ssh/id_rsa.pub,查看公钥

3.点击Gitee中设置,点击安全设置下的“SSH公钥”,添加公钥,添加成功后,可以使用命令:ssh -T git@gitee.com,测试是否连通
如下图所示,就算连通成功了
4.创建一个test1.cpp文件

编译的时候用:g++ -std=C++11 test1.cpp -o test1,编译完成后,可以通过./test1运行一下,能够运行成功

5.使用命令git add test1.cpp将代码提交到暂存区,git commit -m '备注'将代码提交到本地仓库中,如下图所示

6.使用命令git push origin master提交到远程仓库(如果远程仓库已有内容,为避免推送时出现冲突,先输入git pull origin master(master是分支名,若使用其他分支,需替换为对应分支名),将远程仓库的代码拉取到本地并台并。)

在Gitee上显示提交成功
7.通过命令:git status,git log查看
五.在VSCode终端将Gitee仓库上的代码拉取到本地
1.首先要确保安装,使用命令git --version,如果未显示版本信息说明未安装,使用命令:yum install git安装
2.进入希望存放代码的本地目录,登录Gitee账号,找到目标仓库,使用命令:git clone “仓库链接”,例如git clone https://gitee.com/yourname/yourrepository.git 。Git会自动下载远程仓库代码到当前指定的本地目录,下载完成后,在该目录下就可以查看和操作从Gitee上拉取的代码
如下图所示,本来test目录下没有"tcy.test",通过克隆命令,终端显示克隆成功,并且再次查看当前文件目录也出现了这个仓库;左上角的资源管理器也有了这个仓库。

六.Git常用命令及使用
下面演示的命令可以在CentOS上实现,也可以在VSCode上通过终端来实现,只不过下面的演示是在CentOS上

1.在上述操作步骤中已经完成了本地仓库的创建
名为“git.test”,可以通过命令:ls -a,看到自动生成了一个隐藏文件.git,初始化就算完成了。

2.创建一个代码文件,名为“test1.cpp”
内容是插入排序,完成了编译并且运行成功。(注意有时候代码会使用C++11及以后版本,就可以通过命令:g++ -std=c++11 test1.cpp -o test1,来完成编译)

3.将文件从工作区存放到暂存区
使用命令:git add test1.cpp(git add .可以添加当前的所有文件),如果添加成功是没有任何提示的,可以通过查看状态(git status)和日志报表(git log),(git status可以显示当前所在的分支,工作目录和暂存区中文件的状态,比如哪些是未跟踪、已修改、已暂存的。git log是查看提交历史记录,包括每次提交的作者、日期、提交说明,git log -p可以显示每次提交的具体代码改动),执行过程如下图所示。

git status输出:这是仓库的首次提交,test1.cpp已被暂存,等待提交。
git log输出:当前仓库没有提交记录,没有可供查看的日志
4. 将代码提交到本地仓库中
第一次提交需要设置用户名和邮箱,否则无法提交。(最终需要把代码提交到远程服务器,必须清楚这是谁提交的代码),使用命令”git commit -m ‘提交备注’”,把文件提交到本地仓库,如下图所示。

5. 提交多个版本
刚刚提交的版本是插入排序,现在把排序函数优化成希尔排序,代码通过了编译

按照上述步骤把文件添加到暂存区,提交到本地仓库,通过git log查看已经提交了两个版本

又在代码中添加了一个add函数,没有实际作用,就是修改代码。注意,commit后面的一串字符,是每个版本的编号,可以用于版本过多的时候版本之间的任意移动。

6.如何回到上一个版本
按照上述步骤,目前本地仓库里面已经有了三个版本,目前在第三个版本,那么如何回到上一个版本呢,可以使用命令:git reset --hard HEAD^ (注意,HEAD后面一个^代表回到上一个版本,两个^代表回到上上一个版本,当然后面也可以跟版本号,git reset --hard ca961b56ea637f9843da27044702feadf2d6cd22,适用于版本很多,想回到任意版本的情况),比如现在回到第二次提交的版本,执行命令

可以发现代码回到了第二次版本,没有实现add函数
7.版本之间任意移动
在仓库已有版本之间是可以任意移动的,首先可以使用命令:git reflog,查看已经提交的版本,如下图所示。

已知目前在第二版本,显示“3ac105a”,与第二版本的版本号对应,如果想回到第一次或者第三次提交,使用命令:git reset --hard 版本号,比如通过这个命令回到第一次,再直接从第一个版本移动到第三个版本,如下图所示。

需要注意的是,要及时对代码文件进行”git add””git commit”操作,如果没有保存修改,再次挪动版本,再次挪回来之后没有保存的就会丢失。
8.git log和git reflog的区别
git log可以显示所有提交过的版本信息,但是不包括已经被删除的commit记录和reset操作;git reflog是显示所有的操作记录,包括提交、回退的操作,一般用来找出操作记录中的版本号进行回退,或者恢复本地的错误操作。
9.如何丢弃刚刚在工作区内容的修改
比如现在在工作区实现了对add函数的调用,但是修改完之后又不想要了,需要丢弃刚刚的修改,也就是用版本库中最新代码覆盖掉这次的代码,使用命令:git checkout test1.cpp,执行后就会发现丢弃了刚才的修改内容,再次查看状态工作区是干净的和版本库一致。
在主函数中添加了这三行代码

对代码进行更改之后查看状态,提示你“modified:test1.cpp”表示test1.cpp文件处于已被修改待提交的状态,没有正式添加到暂存区。git checkout test1.cpp之后,再次查看状态,发现工作区是干净的

再查看一下文件内容,刚刚在主函数里面添加的代码也没有

10.如何从暂存区撤销代码文件
如果代码已经从工作区提交到了暂存区,发现存在问题,就不能往本地仓库提交了,需要从暂存区撤销,需要使用命令:git reset HEAD test1.cpp,如下图所示,“Changes to be committed”说明待提交更改,已经暂存成功,使用了上述命令之后,“Unstaged changes after reset”表明文件回到了未暂存但已修改的状态,用git status查询状态之后,提示文件处于未暂存更改状态,也就是撤销成功

综上所述,在本地git使用中,常用的命令就是:add,commit,log,reflog
七.可能出现的问题以及解决方法
1.通过"Remote-SSH"远程连接失败
如果出现连接失败的情况,可能是端口开放情况出现了问题,通过命令:sudo firewall-cmd --list-ports,查看已开放端口,发现执行结果为空,说明当前未显示有开放的端口,继续执行命令:firewall-cmd --zone=public --add-port=22/tcp --permanent ,来开放端口,最后执行:firewall-cmd –reload重新加载防火墙配置

更多推荐


所有评论(0)