vscode 远程服务器 上传至 github

专栏的上一篇,是关于git全家桶的说明,下面我们就要专门介绍怎么用vscode和git将代码上传至github。

前言

为什么要使用或者上传至github呢?github有什么好处呢?

当然有好处啊。我们在做项目的时候肯定不是改一次代码就把项目做好了,肯定要经过好多个版本的迭代完成,而且在修改代码的时候还不一定结果比上一次好,往往需要恢复至上一个版本。有同学说了,我直接一个版本一个版本CV。emmm....很聪明啊。

当你上传至github之后这个就迎刃而解啦。便于管理各个版本的代码 ,如果这个版本运行报错或者结果不好,就可以稍稍动动手指就能一键恢复啦。很方便,如果项目不宜"抛头露面",还可以建立私人仓库哦。

步骤如下:

1.建立ssh连接。

先看看自己电脑上有没有这个文件。如果有的可以跳过这一步骤。没有的看这里

复制代码
ssh-keygen -t rsa -C "youremail@xxx.com"			 #myname@xxx.com 为 GitHub关联的邮箱

# 三次回车即可生成 ssh key(第一次询问安装路径,第二次设置密码,第三次确认密码,都保持默认即可,直接回车确认)

通过这个命令可以生成密钥。id_rsa就是私钥,id_rsa.pub是公钥。我们接下来需要公钥。然后在github的ssh这个选项中选择ssh这个选项。

然后点击new ssh key,用记事本打开公钥复制进去就好了。如果这要是你的电脑,当然就可以了。但是如果是服务器的话,切记还要添加服务器的公钥 ,毕竟是服务器的代码上传至github的,不和他配对,就会出permission denied。别问,问就是被伤过(

2.下载git

一路next就行。畅通无阻啦

3.vscode 登录

需要在vscode里面登录github账户。像这样

这个是登录命令。

复制代码
git config --global user.name "myname"  			 # myname 为 GitHub 用户名

git config --global user.email "myname@xxx.com" 	 #myname@xxx.com 为 GitHub关联的邮箱

4.上传

先建一个仓库,输入仓库名字,点击create a new repository。公共私有都可以,依你而建。

下面这个就很重要了。最上面是两种形式,一种是https形式提交代码一种是ssh,都是一样的。

复制代码
git init
git add .(提交全部文件,如果需要提交特定文件夹或者文加,需要加名字)
git commit -m "提交代码时的注释"
git push -u origin main #提交到github

5.注意事项

一个项目应该是很完善的,包括数据集还有一些log,都是不重要。我们不必上传,上传的应该只是代码改动的文件,我们需要知道他每一版代码改动了哪些地方,防止以后忘记(肯定是会忘记的)如果你想要上传那些大文件,你可能要等上九九八十一天。我是传了2566个文件,等的花都谢了。

重头戏来了!可以使用gitignore,自动忽略那些文件或者文件夹。

在vscode里面不能建.gitignore文件,直接在终端(快捷键:ctrl+~)touch一个。

复制代码
touch .gitignore

然后在里面编辑有什么不需要上传至github的。总体如下:

复制代码
*.py #后缀为py的文件,忽略
dataset/* #忽略dataset目录里面的文件
!dataset/a.txt #不能忽略datasrt目录的这一个文件

最后谨慎选择下面这个命令,这个命令会直接把你的文件删了,需要返回上一次提交版本,才能找回。

复制代码
git clean -fdX #清理工作目录
git log # 查看提交信息


(yolov5) (base) 目录$ git log
commit d9c9c6ef6ce90a2757fb5988489dbf3afab7ebf7 (HEAD -> master, origin/master)
# commit后面这个叫commit_sha码

git reset --hard HEAD^  # 回退到上一个版本
git reset --hard HEAD~3  #回退到前三次之前
git reset --hard commit_sha #回退到指定版本

5.常见命令(参考

5.1 取消上一次commit

注:不光以下列举的三个,还有其他,能记住这三个已经很不错了。其他的即学即用就可以了

复制代码
#取消上一次提交
git reset HEAD~1
#将head指针移到上一个提交,并清除最后一次提交内容
git reset HEAD^
#撤回多次
git reset HEAD~n

5.2取消上一次push

复制代码
#强制覆盖远程仓库上已经存在的commit,branch_name表示撤销分支名称
git push --force origin <branch_name>


# 如果本地仓库没有回到commit的上一个状态,需要reflog以下,找到上一个commit_sha码
git reflog
# 然后用这个命令回到该commit的状态
git reset --hard <commit_SHA-1>
#然后使用之前的推送命令进行推送,覆盖远程仓库的提交历史记录
git push --force origin <branch_name>

提醒:使用git push --force命令可能会导致远程仓库、其他成员的仓库和历史版本产生不可逆的影响,因此操作时需要谨慎。一般情况下,在工作流中使用git revert命令回滚某个commit,以保证版本控制的完整性和可维护性。

5.3拓展

复制代码
--mixed  #不删除工作空间的改动代码,撤销commit,并撤销git add .操作
git reset --mixed HEAD^ 效果等同 git reset HEAD^

--soft #不删除工作空间的代码改动,撤销commit,不撤销git add .

--hard #删除工作空间代码改动,撤销commit和add .

--amend  #修改注释,进入vim编译器,改完:wq即可

欢迎点赞,关注哦

相关推荐
我是哪吒41 分钟前
分布式微服务系统架构第155集:JavaPlus技术文档平台日更-Java线程池实现原理
后端·面试·github
NeRF_er1 小时前
使用 VScode Debug加不上断点的原因
ide·vscode·编辑器
GHL2842710901 小时前
error MSB8041: 此项目需要 MFC 库。从 Visual Studio 安装程序(单个组件选项卡)为正在使用的任何工具集和体系结构安装它们。
ide·visual studio
专注VB编程开发20年5 小时前
javascript的类,ES6模块写法在VSCODE中智能提示
开发语言·javascript·vscode
DeepSeek-大模型系统教程9 小时前
推荐 7 个本周 yyds 的 GitHub 项目。
人工智能·ai·语言模型·大模型·github·ai大模型·大模型学习
ai小鬼头12 小时前
AIStarter最新版怎么卸载AI项目?一键删除操作指南(附路径设置技巧)
前端·后端·github
笑醉踏歌行19 小时前
idea应用代码配色网站
java·ide·intellij-idea
不午睡的探索者21 小时前
告别性能瓶颈!Python 量化工程师,进击 C++ 高性能量化交易的“必修课”!
c++·github
韩初心21 小时前
使用 visual studio 2022 编译 Lua5.4.8
ide·visual studio·lua5.4
光溯星河21 小时前
【实践手记】Git重写已提交代码历史信息
后端·github