引言
近期发现VSCode是一个非常强大的IDE,可以替换掉诸如xshell、winscp等多款软件,实现很好的本地、服务器、甚至github的同步。
公钥私钥配对
不管是本地到服务器,本地到github,还是服务器到github,都可以通过配置密钥的方式,实现免密登录,因此先讲述如何进行密钥配对。
配对的时候,要把公钥分给远程端,把私钥分给本地端(服务器发给另一个服务器时也可以视为本地端),公钥私钥唯一匹配,则可以成功登录。
- 生成新的密钥,在windows的cmd,或linux和mac的终端中,输入如下命令,确认后会生成两个文件,id_rsa和id_rsa.pub。前者是私钥,后者是公钥。
ssh-keygen -t rsa -C "email@email.com"
- 找到生成的密钥,默认放置在 C:/Users/lenovo/.ssh/ ,用记事本之类的编辑器打开id_rsa.pub,复制内容。
- 把公钥复制到远程端。对于服务器,将复制的内容追加到 ~/.ssh/authorized_keys 。对于github,打开github -> 点击头像 -> Settings -> SSH and GPG keys -> New SSH key ->黏贴key,随便写个title -> 配置成功。
- 对于github,需要额外运行
ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
本地和服务器的同步
- 在插件扩展里安装微软官方发布的 Remote-SSH ,安装完后左侧会多一个远程资源管理器的图标,呈电脑状。
- 点击远程图标,点击SSH TARGETS旁边的齿轮图标进行配置,弹出的多行配置文件里选择第一个,确认进行配置。
- 进行如下配置,保存,会在SSH TARGETS下面出现名字为Name的远程机,会一直存在于远程资源管理器里,以后只需右键连接即可。
Host Name HostName 1.1.1.1 # 填写远程服务器的IP或者Host User username # 填写登陆远程服务器的用户的名字 Port 22 # 填写端口,默认为22 IdentityFile C:\\Users\\lenovo\\.ssh\\id_rsa #填写私钥路径
- 右键连接到服务器后,点击菜单栏的文件,点击新建文件夹,就可直接选择服务器端的文件夹,而后文件夹就挂载到了左侧上边的第一个图标资源管理器,在这里的更改都会实时同步回服务器。
- 另外,在连接到服务器后,可以点击菜单栏的终端呼出新终端,就可以相当于xshell、putty直接在vscode上执行服务器上的终端命令了。
服务器和github的同步
VSCode默认支持了很多git操作,就在左侧的源代码管理图标中,呈分支图状。
在首次安装git的时候,需要先设置自己的用户名和邮箱(注册github时的用户名和邮箱)。
git config --global user.name "name"
git config --global user.email "email@email.com"
一般而言,本地和github的同步操作如下:
git init # 把这个文件夹变成Git可以管理的仓库
git add . # 把当前文件夹下的所有文件添加到暂存区
git add **.py # 把当前文件夹下的**.py添加到暂存区
git status # 可选操作,查看当前状态
git commit -m "注释" # 把暂存区的文件提交到本地仓库
git checkout master # 切换到master分支
git remote add origin https://github.com/name/Project.git # 关联github仓库,一个项目只需关联一次
git push origin main # 把本地仓库推向远程GitHub仓库的main分支
git pull origin main # 把远程GitHub仓库的main分支拉回本地仓库
而在VSCode中,这些命令大多数可以通过更方便的方式来替代。我们一方面可以通过调出终端,使用如上命令来进行同步,也可以通过点击源代码管理图标,直观地对文件夹中地文件进行同步操作。具体来说:
git init 可以通过点击源代码管理图标里地初始化按钮替代。
git add 可以通过在文件旁边点击+号替代。
git commit 可以通过文件上面地消息来替代。
git remote add 通过按Ctrl+Shift+P调出命令行,输入git remote add,再进一步输入https://github.com/name/Project.git,再输入origin,完成绑定
git push 通过按Ctrl+Shift+P调出命令行,输入git push
git pull 通过按Ctrl+Shift+P调出命令行,输入git pull
git checkout 通过点击左下角地分支名字来更换
另外要注意:
- 一般上传流程是 add、commit、push,在这之前需要先上去github新建项目。
- 在同步过程中如果遇到了和github端冲突的问题,则需要先解决冲突,再继续上传。
- 对于本地和github的同步则基本一样,服务器可以作为另一种形式的本地。
总结
目前VSCode的使用感受还不错,基本可以替代掉xshell和winscp,并可以实现多平台较好的同步。在与github的同步中,需要小心谨慎的做好版本管理,不要误删文件。一般需要每有一次较大改动就要push一次,并且要充分利用好branch分支功能。