当前位置: 首页 > news >正文

上传项目至Github与从Github克隆项目

解决问题:

1.如何在Ubuntu虚拟机中将项目上传至github

2.如何克隆GitHub项目

先检查一下git是否安装

git --version

如果没有安装:

sudo apt update
sudo apt install git

git怎么知道我们使用的是哪个用户呢?这需要配置Git用户信息。

在项目的根目录下进入终端:

git config --global user.name "你的github用户名"
git config --gloabl user.email "你的github邮箱"

进入github,点击右上方的加号,选择create a repository

先不需要选择添加.gitignoreREADME.md

在项目根目录下打开终端:

#初始化git
git init
​
#将所有文件添加到暂存区,注意add与.之间有一个空格
git add .
​
#提交更改
git commit -m "更改说明"
​
#添加远程仓库
git remote add origin https://github.com/你的用户名/仓库名.git
​
#推送到github
git push -u origin main
​
#如果是master分支
git push -u origin master
​
#如果你想重命名本地分支:例如重命名为main
git branch -M main

推送时要求我们输入账号密码,但现在Github使用的是personal access token而不是账号密码

生成token:点击头像 -> Settings -> Developer Settings -> Personal access tokens -> Tokens(classic) -> Generate new token -> Generate new token(classic)

note:My VM Git Access(随便填)

Expiration(过期时间)随便填

权限至少选择repo

点击Generate Token

生成Token之后最好复制粘贴到某个地方,因为只显示一次

后续推送时将密码换为Token即可

kevin@kevin-virtual-machine:~/goproject/chatroom$ git push -u origin main
fatal: unable to access 'https://github.com/KevinJosephDavis/MyChatWeb.git/': Failed to connect to github.com port 443 after 21044 ms: Connection refused

这是网络问题。先检查一下我们的虚拟机

kevin@kevin-virtual-machine:~/goproject/chatroom$ ping -c 4 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=313 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=128 time=335 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=128 time=259 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=128 time=229 ms
​
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 228.787/284.075/335.416/42.204 ms

能ping通谷歌官网,说明是可以正常访问外部网络的。

我们使用ssh解决这个问题

#生成SSH密钥
ssh-keygen -t ed25519 -C "github邮箱"
#直接回车使用默认设置
​
#查看公钥
cat ~/.ssh/id_ed25519.pub

将公钥添加到github:Settings -> SSH and GPG keys -> New SSH Key

粘贴刚刚生成的公钥即可

接着:

#删除原来的HTTPS远程仓库
git remote remove origin
​
#添加SSH地址
git remote add origin git@github.com:你的用户名/仓库名称.git
​
#推送
git push -u origin main

你会看见如下语句:

The authenticity of host 'github.com (20.205.243.166)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? 

无需担心,这是正常的安全验证步骤,这表示:

1.这是系统第一次连接GitHub

2.系统在确认你连接的是真正的Github服务器

3.防止中间人攻击

输入yes后,系统会把这个指纹保存到~/.ssh/known_hosts文件中,以后连接就不会询问了

如果顺利,你会看到:

kevin@kevin-virtual-machine:~/goproject/chatroom$ git push -u origin main
The authenticity of host 'github.com (20.205.243.166)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
Enumerating objects: 58, done.
Counting objects: 100% (58/58), done.
Delta compression using up to 2 threads
Compressing objects: 100% (44/44), done.
Writing objects: 100% (58/58), 52.41 KiB | 3.28 MiB/s, done.
Total 58 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:KevinJosephDavis/MyChatWeb.git* [new branch]      main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.

这说明文件已经上传到仓库了

我们可以验证仓库状态

#查看仓库状态
git status
​
#查看远程仓库信息
git remote -v
​
#查看分支信息
git branch -a

现在我需要把这个从虚拟机上传的项目克隆到主机中,并上传一些文件,步骤如下:

先在git bash中进入你想保存这个项目的目录

#克隆
git clone git@github.com:你的GitHub名/仓库名.git
​
#进入项目目录
cd MyChatWeb

你可能会遇到这种情况:

ssh: connect to host github.com port 22: Connection refused
fatal: Could not read from remote repository.
​
Please make sure you have the correct access rights
and the repository exists.

这代表SSH端口22被阻止了,我们可以使用HTTPS替代SSH

git clone https://github.com/你的Github名/仓库名.git

然后把你需要上传的文件移动/复制到这个克隆下来的文件夹里,cmd中使用copy或remove

#提交推送
git add docs/
git commit -m "添加项目开发日记文档"
git push

虚拟机端:

#拉取更新
cd 你的项目目录
git pull origin main
​
#确认文件同步
ls docs/ #查看是否有从Windows主机上传的文件

http://www.dtcms.com/a/553530.html

相关文章:

  • 做个人网站的步骤上海建筑设计公司平台
  • 如何使用一个模型完成多种交通任务?请看此文
  • 第N2周:构建词典
  • 德意志飞机D328eco携手ADS:CMS+IETM双引擎,点燃通用航空效率革命
  • c#获取当前程序所在目录避坑
  • day59-Shell编程(第五部分)
  • 网站建设客户需求分析调查表江苏国泰做的网站案例
  • VUE3+element plus el-table上下拖拽
  • 【模拟面试|豆包模拟面试-1 Java基础】
  • AI优化亚马逊广告:DeepBI智能化托管让广告运营从负担变轻松,ACOS优化至23%以下
  • 关键词解释:梯度消失(Vanishing Gradient)与 梯度爆炸(Exploding Gradient)
  • 天津网站建设如何最近火爆的新闻
  • Maven内核探秘:从启动到构建全流程
  • CNCC 2025|开源AI基础设施论坛成功举办
  • 开源可信MCP,AICC机密计算新升级!
  • 混元图像3.0开源原生多模态生图新篇章
  • 环境搭建与第一个程序:Hello, Rust!
  • [论文阅读] AI | 大语言模型服务系统服务级目标和系统级指标优化研究
  • 帝国网站管理系统视频教程asp网站开发
  • 自己做的网站申请软著物联网是干嘛的
  • 企业形象破局指南——缺乏专业线上展示?官网SEO优化重构品牌信任
  • webgl 变换矩阵:旋转、平移、缩放
  • 怎么做婚介网站襄阳php网站开发
  • 网站建设规划书案例济南做网站互联网公司有哪些
  • float为什么会丢失精度?
  • 网站产品后台界面怎么做微信朋友圈广告推广
  • 香港科技大学广州|可持续能源与环境学域博士招生宣讲会—吉林大学专场
  • LaTeX 重点表格文字对不齐(有些列文字和其他列差一行才显示)的原因和解决办法
  • 网站推广必做百度云打开的wordpress
  • soular零基础学习,如何统一管理TikLab帐号体系