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即可

欢迎点赞,关注哦

相关推荐
&&Citrus7 小时前
【杂谈】SNNU公共计算平台:深度学习服务器配置与远程开发指北
服务器·人工智能·vscode·深度学习·snnu
灵魂学者7 小时前
Vue3.x —— 父子通信
前端·javascript·vue.js·github
元直数字电路验证8 小时前
GitHub Desktop 上传流程
github
飞火流云8 小时前
vscode Linux下编译失败找不到文件
ide·vscode·编辑器
Trouville0110 小时前
Pycharm软件初始化设置,字体和shell路径如何设置到最舒服
ide·python·pycharm
Piink10 小时前
VSCode基本操作
vscode·编辑器
Crystal32812 小时前
Git 基础:生成版本、撤消操作、版本重置、忽略文件
前端·git·github
就叫飞六吧13 小时前
找不到或无法加载主类 @C:\***\Local\Temp\idea_arg_file...
java·ide·intellij-idea
BD_Marathon14 小时前
【JavaWeb】VsCode的其他常见设置
ide·vscode·编辑器
Elastic 中国社区官方博客14 小时前
用 Elasticsearch 构建一个 ChatGPT connector 来查询 GitHub issues
大数据·人工智能·elasticsearch·搜索引擎·chatgpt·github·全文检索