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

怎么将Linux上的文件上传到github上

文章目录

  • 1. 先在window浏览器中创建一个存储项目的仓库
  • 2. 复制你的ssh下的地址
    • 1) 生成ssh密钥 : 在Linux虚拟机的终端中,运行以下命令生成ssh密钥
    • 2)将ssh密钥添加到github账号 : 运行以下命令来获取公钥内容:
  • 3. 克隆GitHub存储库:在Linux虚拟机的终端中,导航到您想要将文件上传到的目录。然后,使用命令`git clone`克隆Github存储库。例如:
  • 4.将文件添加到本地存储库:在虚拟机中,将要上传到GitHub的文件复制到刚刚克隆的存储库目录中。
  • 5.提交更改并推送到远程存储库:在终端中运行以下命令以提交更改并将其推送到远程存储库。
  • 锦囊妙计:你可能用到的补充:
    • 1.
    • 2.
    • 3. 克隆仓库的某个分支
    • 4.

1. 先在window浏览器中创建一个存储项目的仓库

在这里插入图片描述

2. 复制你的ssh下的地址

在这里插入图片描述

一般情况下,你是肯定没有安装过公私钥的,接下来教你安装公钥

1) 生成ssh密钥 : 在Linux虚拟机的终端中,运行以下命令生成ssh密钥

ssh-keygen -t rsa -b 4096 -C "your-email@example.com"

然后,你一直按回车就可以了

请确保将"your-email@example.com"替换为您在GitHub上注册的电子邮件地址。然后,按照提示完成密钥生成过程。

2)将ssh密钥添加到github账号 : 运行以下命令来获取公钥内容:

cat ~/.ssh/id_rsa.pub

复制输出的公钥内容。

登录到GitHub账号,点击右上角的头像,进入"Settings"(设置)页面。
选择"SSH and GPG keys"(SSH和GPG密钥)选项卡,点击"New SSH key"(新建SSH密钥)。
在"Title"(标题)字段中,为密钥提供一个描述性的名称(比如 : 直接命名为你服务器的ip地址)。
将之前复制的公钥粘贴到"Key"(密钥)字段中。
最后,点击"Add SSH key"(添加SSH密钥)完成添加过程。

至此,你再重新登录你的github,你会发现,没有之前的警告提示了,说明你已成功添加ssh密钥!!!

在这里插入图片描述

这时候,你就得到了你ssh下的仓库地址:

git@github.com:xxx/xxxxxxx.git

3. 克隆GitHub存储库:在Linux虚拟机的终端中,导航到您想要将文件上传到的目录。然后,使用命令git clone克隆Github存储库。例如:

git clone git@github.com:username/repository.git

后面这个:git@github.com:username/repository.git
就是你刚才,得到的你ssh下的仓库地址:
git@github.com:xxx/xxxxxxx.git

此时,你会发现:github上的那个仓库被克隆到了你的虚拟机中

在这里插入图片描述

4.将文件添加到本地存储库:在虚拟机中,将要上传到GitHub的文件复制到刚刚克隆的存储库目录中。

比如 : 我复制了一个Nginx的目录

wxncom@wxncom-virtual-machine:~/T$ ls
Cluster_CPP_server
wxncom@wxncom-virtual-machine:~/T$ cd Cluster_CPP_server/
wxncom@wxncom-virtual-machine:~/T/Cluster_CPP_server$ ls
README.md
wxncom@wxncom-virtual-machine:~/T/Cluster_CPP_server$ cp ../../Nginx/ ./ -r
wxncom@wxncom-virtual-machine:~/T/Cluster_CPP_server$ ls
Nginx  README.md

5.提交更改并推送到远程存储库:在终端中运行以下命令以提交更改并将其推送到远程存储库。

总结一下:

cd repository   # 进入克隆的存储库目录

# 前几步,我们已经OK了,直接进行下面的步骤:

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

git add .       # 添加所有更改的文件
git commit -m "Add files"    # 提交更改,"Add files"是提交的注释
git push origin master    # 推送更改到远程存储库的master分支,注意,一般情况下,刚创建的分支只有main分支,所以你要写git push origin main

在这里插入图片描述

wxncom@wxncom-virtual-machine:~/T/Cluster_CPP_server$ git push origin main
Counting objects: 588, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (573/573), done.
Writing objects: 100% (588/588), 7.38 MiB | 773.00 KiB/s, done.
Total 588 (delta 97), reused 0 (delta 0)
remote: Resolving deltas: 100% (97/97), done.
To github.com:1AoB/Cluster_CPP_server.git
   f2603b1..671b6b3  main -> main

呦吼 ! 至此 , 作为一个大?学生,你已掌握了一个非常重要的技能!!!

希望未来 , 咱们能学会更多好玩的it技能!!!

锦囊妙计:你可能用到的补充:

1.

wxncom@wxncom-virtual-machine:~/T/Cluster_CPP_server$ git push origin master
error: src refspec master does not match any.
error: failed to push some refs to 'git@github.com:1AoB/Cluster_CPP_server.git'
wxncom@wxncom-virtual-machine:~/T/Cluster_CPP_server$ git push origin main
To github.com:1AoB/Cluster_CPP_server.git
 ! [rejected]        main -> main (fetch first)
error: failed to push some refs to 'git@github.com:1AoB/Cluster_CPP_server.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.



这个错误提示表明远程仓库中的分支与你本地仓库中的分支存在冲突,导致无法推送。

解决这个问题的方法是先拉取远程仓库的更新,然后再将你的更改合并后再次进行推送。请按照以下步骤进行操作:

1.首先,运行以下命令来拉取远程仓库的更新:
git pull origin main
如果你在本地使用的是 "master" 分支而不是 "main" 分支,请相应地更改命令中的分支名称。

2.Git 将尝试自动合并你的更改和远程的更新。如果发生冲突,你需要手动解决冲突。Git 会在出现冲突的文件中标记冲突的部分,你需要编辑这些文件并手动解决冲突。
# 这个时候 , 你应该进入了一个git的文本编辑器
# 这个部分还是不是很懂,如果我的话,当时是其实上误删了一个不重要的文件,然后就产生冲突了,所以到了这一步,我也无序解决什么冲突,直接退出这个界面. <要退出这个界面,你可以按下 Ctrl + X 键,然后输入 Y(表示是)来保存更改,或者输入 N(表示否)来放弃更改并退出。>

3.解决完冲突后,运行以下命令将解决后的更改提交到本地仓库:
git add .
git commit -m "Merge remote changes"

4.最后,运行以下命令将更改推送到远程仓库:
git push origin main
同样,如果你使用的是 "master" 分支而不是 "main" 分支,请相应地更改命令中的分支名称。

通过以上步骤,你应该能够成功将本地更改合并到远程仓库中。

2.

wxncom@wxncom-virtual-machine:~/T/Cluster_CPP_server$ git push origin master
error: src refspec master does not match any.
error: failed to push some refs to 'git@github.com:1AoB/Cluster_CPP_server.git'


这个错误提示表明在本地仓库中没有找到名为 "master" 的分支。通常,这是由于还没有进行过任何提交导致的。

请按照以下步骤检查和解决问题:

1.确保已经进行了至少一次提交:
运行以下命令来查看当前本地分支的情况:
git branch
如果没有任何分支被列出,或者只有默认的 "main" 分支,则说明你尚未进行过任何提交。可以通过运行以下命令来创建并切换到一个新分支(例如 "dev" 分支):
git checkout -b dev
然后添加、提交你的更改:
git add .
git commit -m "Initial commit"

2.确定远程仓库的正确名称和地址:
运行以下命令来查看远程仓库的列表:
git remote -v
确保远程仓库的名称为 "origin",且与你要推送的远程仓库地址匹配。

3.推送到远程仓库:
运行以下命令来将本地分支推送到远程仓库:
git push origin <branch-name><branch-name> 替换为你想要推送的分支名称(例如 "main""dev")。

如果上述步骤中的任何一项出现问题,请检查你的本地仓库状态、远程仓库设置和分支名称,并确保正确操作。

3. 克隆仓库的某个分支

git clone git@github.com:xxxxx/xxxxxxxxxxxxx.git

我发现安装上面的这样,只能克隆仓库的第一个分支,我就想 : 如何修改我就可以克隆任意分支了?

在克隆 Git 仓库时,默认情况下只会克隆主分支(通常是 “master” 或 “main” 分支)。如果你想克隆其他分支,可以通过以下两种方法之一来实现:

  1. 在克隆命令中指定要克隆的分支:
git clone -b <branch-name> git@github.com:1AoB/Cluster_CPP_server.git

<branch-name> 替换为你想要克隆的分支名称。

eg : 如果要克隆 “dev” 分支,可以使用以下命令:

git clone -b dev git@github.com:1AoB/Cluster_CPP_server.git
  1. 克隆完整的仓库,并在克隆后切换到特定分支:
git clone git@github.com:1AoB/Cluster_CPP_server.git
cd Cluster_CPP_server
git checkout <branch-name>

先使用普通的 git clone 命令克隆整个仓库,然后进入克隆后的目录,使用 git checkout 命令切换到你想要的分支。

无论你选择哪种方法,都能够让你克隆特定的分支而不仅仅是默认的主分支。

4.

在git push origin master中,遇到了一个
warning: suboptimal pack - out of memory

你觉得,这个有什么影响吗?

当你在 Git 中遇到 “warning: suboptimal pack - out of memory” 的警告消息时,它表示 Git 在创建或操作打包文件时遇到了内存不足的问题。这可能会影响 Git 操作的性能和效率。

这个"内存不足" 的警告消息指的是你的虚拟机或本地系统内存不足,而不是 GitHub 上的内存问题。

系统内存可以类比为手机的运行内存。

这个问题是你的虚拟机不太行,需要花钱升级为系统内存更大的虚拟机.

相关文章:

  • 总结二:linux面经
  • PyTorch入门之【AlexNet】
  • [React源码解析] React的设计理念和源码架构 (一)
  • JMeter性能测试
  • [架构之路-228]:目标系统 - 纵向分层 - 计算机硬件与体系结构 - 硬盘存储结构原理:如何表征0和1,即如何存储0和1,如何读数据,如何写数据(修改数据)
  • 【17】c++设计模式——>原型模式
  • Raid10--Raid01介绍
  • 华为云云耀云服务器L实例评测|基于canal缓存自动更新流程 SpringBoot项目应用案例和源码
  • 关于Go语言的底层,Slice,map
  • 博弈论——伯特兰德寡头模型(Bertrand Model)
  • 利用fitnesse实现api接口自动化测试
  • Waves 14混音特效插件合集mac/win
  • 目前制造企业生产计划现状是什么?有没有自动化排产系统?
  • minio分布式文件存储
  • SCROLLINFO scrollInfo; 2023/10/5 下午3:38:53
  • 【C语言】善于利用指针(二)
  • SpringCloud(二)Docker、Spring AMQP、ElasticSearch
  • 逐步解决Could not find artifact com:ojdbc8:jar:12
  • Ubuntu安装samba服务器
  • 讲讲springboot的@Async
  • 当代科技拟召开债券持有人会议 ,对“H20科技2”进行四展
  • 泽连斯基:将带领乌代表团前往土耳其,已准备好与普京会谈
  • 夜读丨取稿费的乐趣
  • 茅台回应“茅台1935脱离千元价位带竞争”:愿与兄弟酒企共同培育理性消费生态
  • 观众走入剧院空间,人艺之友一起“再造时光”
  • 来伊份:已下架涉事批次蜜枣粽产品,消费者可获额外补偿,取得实物后进一步分析