【经验总结】ubuntu 20.04 git 上传本地文件给 github,并解决出现的问题

1. 在GitHub

上创建仓库

  1. 登录 GitHub 个人网站

  2. 点击 New
    在这里插入图片描述

  3. 填写 Repository name, 以及 Description (optional)
    选择 Public
    并添加 Add a README file
    点击 Create repository
    在这里插入图片描述

  4. github repository 创建成功
    在这里插入图片描述

2. 设置SSH key

在本地 bash 运行:

$ ssh-keygen -t rsa -C "xxx@gmail.com"

查看钥匙

$ ls ~/.ssh
id_rsa  id_rsa.pub  known_hosts
$ cat ~/.ssh/id_rsa.pub

id_rsa id_rsa.pub就是 SSH Key 的秘钥对,id_rsa 是私钥,不能泄露出去,id_rsa.pub 是公钥。

3. GitHub上传 SSH Key 公钥

点击右上角的头像,会出现
在这里插入图片描述
点击 Settings,出现:
在这里插入图片描述
再点击 SSH and GPG keys,出现:
在这里插入图片描述
点击 New SSH key
在这里插入图片描述
填写 Title 下面的长框
Key 下面的文本框 复制 cat ~/.ssh/id_rsa.pub 的内容
再点击 Add SSH key
这时 GitHub 会跳转到登录页面,输入 用户名和密码重新登录

4. 本地文档上传至Github

  1. 查看能否连接到Github
$ ssh -T git@github.com
Hi 6master6! You've successfully authenticated, but GitHub does not provide shell access.
  1. 设置用户名和邮箱
    用户名和邮箱为注册Github时的名字
$ git config --global user.email xxx@gmail.com
$ git config --global user.name “6master6”
$ git config -l
user.email=xxx@gmail.com
user.name=“6master6”
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=git@github.com:6master6/llm_study.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.main.remote=origin
branch.main.merge=refs/heads/main
  1. 新建本地代码仓库
$ cd ~/your_directory

3.1 使用 git init 命令,可以将一个普通的目录转变为一个可以使用 Git 进行版本控制的代码库。在代码库中,Git 将跟踪和管理代码的历史记录、分支和更改。

$ git init
Initialized empty Git repository in /home/wxf/workspace/LLM/LLM-quickstart/transformers/.git/

在 Git 中,代码更改需要经过两个步骤才能被提交到代码库:

工作区(Working Directory):这是当前正在进行编辑和修改的文件和目录。
暂存区(Staging Area):这是一个中间区域,用于暂时存储要提交的更改。

3.2 使用 git add 命令,可以将工作区中的文件或目录的更改添加到暂存区

$ git add file.txt          # 添加file.txt文件
$ git add your_directory/         # 添加整个目录
$ git add .                  # 添加当前目录下的所有文件和目录

3.3 使用 git commit 命令将暂存区的更改提交到本地代码库,并附带提交消息
-m “Update README file”:使用 -m 参数指定提交消息,该消息是对提交的更改进行简要描述的字符串。示例中,提交消息是 “Update README file”,它描述了对 README 文件的更新

$ git commit -m "Update README file"

提交后,更改将永久保存在本地代码库中,并获得一个唯一的提交标识符(commit hash)。

3.4 使用 git log 会显示当前分支的提交历史记录,并为每个提交显示其标识符。
git log 命令会按照提交时间的倒序显示提交记录,最新的提交在最上方。每个提交记录包含有关提交的信息,如提交标识符(commit hash)、作者、提交日期和提交消息。

$ git log

3.5 使用git status 用于显示当前代码库的状态信息。它会告诉您有关尚未提交的更改、已暂存的更改以及其他与代码库状态相关的信息。

$ git status
On branch main
Your branch is up to date with 'origin/main'.

3.6 使用 git branch 用于创建、列出、重命名和删除分支。分支是指向提交历史的可移动指针,它允许在代码库中独立地开发和修改不同的功能、修复错误或实验性的工作。
3.6.1 创建分支: 使用 git branch 命令创建一个新的分支。例如,要创建名为 “feature” 的分支,可以执行以下命令:

$ git branch feature

3.6.2 列出分支: 使用 git branch 命令(无参数)可以列出当前代码库中的所有分支。当前分支前会有一个星号标记。例如:

  feature
* main

3.6.3 切换分支: 要切换到其他分支,可以使用 git checkout 命令。例如,要切换到名为 “feature” 的分支,执行以下命令:

$ git checkout feature
Switched to branch 'feature'

3.6.4 重命名分支: 使用 git branch -m 命令可以将分支重命名为新的名称。例如,要将名为 “feature” 的分支重命名为 “new-feature”,执行以下命令:

$ git branch -m feature new-feature
$ git branchmain
* new-feature

3.6.5 删除分支: 使用 git branch -d 命令可以删除指定的分支。请注意不能删除当前所在的分支。例如,要删除名为 “feature” 的分支

$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
$ git branch -d feature
error: branch 'feature' not found.
$ git branch -d new-feature
Deleted branch new-feature (was b66b7cb).
  1. 提交本地代码到Github

4.1 git remote add origin 用于将远程代码库与本地代码库进行关联。它允许将一个远程代码库(通常是在 Git 服务器上)与正在处理的本地代码库进行连接。

git remote add <remote-name> <remote-url>

origin 是远程代码库的别名,可以自由命名,通常将其命名为 “origin”。 是远程代码库的 URL 地址,它指定了远程代码库的位置

$ git remote add origin git@github.com:6master6/llm_study.git

4.2 git push 用于将本地代码库的提交推送到远程代码库。它将在本地所做的代码更改上传到远程代码库,使其他人能够查看和访问您的更改。

git push <remote-name> <branch-name>

remote-name是远程代码库的别名,指定了要推送到的远程代码库。branch-name 是要推送的本地分支的名称
Git 在本地分支 “main” 上的提交推送到名为 “origin” 的远程代码库:

git push origin main

git push 命令的常见用法包括:

  1. 将本地分支的提交推送到远程代码库。
  2. 在推送时使用 -u 或 --set-upstream 选项,将本地分支与远程分支进行关联,以便在后续的 git pull 或 git push 中可以直接使用分支名称,而无需指定远程代码库和分支名称。
  3. 使用 --force 选项强制推送,覆盖远程分支上的提交,但在使用此选项时要小心,以免覆盖他人的工作。

4.3 git pull 用于从远程代码库拉取最新的更新并合并到本地代码库中。它可以将远程代码库的最新更改同步到本地代码库,以确保工作处于最新状态。

git pull <remote-name> <branch-name>

Git 将会从名为 “origin” 的远程代码库拉取最新的更改,并将其合并到当前所在的分支中:

git pull origin main

git pull 命令的常见用法包括:

  1. 从远程代码库拉取最新的更改并将其合并到当前分支。
  2. 在拉取时使用 --rebase 选项,将本地的提交重新应用到拉取的远程分支的顶部,以避免产生额外的合并提交。
  3. 使用 --force 选项强制拉取,覆盖本地的更改。
  4. 在拉取时使用 --all 选项,从所有远程分支中拉取更新。
$ git push -u origin main
To github.com:6master6/llm_study.git! [rejected]        main -> main (fetch first)
error: failed to push some refs to 'git@github.com:6master6/llm_study.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.
$ git pull origin main
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 16.04 KiB | 74.00 KiB/s, done.
From github.com:6master6/llm_study* branch            main       -> FETCH_HEAD* [new branch]      main       -> origin/main
Merge made by the 'recursive' strategy.
$ git push -u origin main
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 16 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 9.37 KiB | 3.12 MiB/s, done.
Total 4 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), done.
To github.com:6master6/llm_study.git23bf525..b66b7cb  main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.

5. 问题解决

5.1 fatal: 远程 origin 已经存在

此时只需要将远程配置删除,重新添加即可

git remote rm origin

5.2 git操作是出现Username for ‘https://github.com’:的验证问题

参考:

  1. git push提示Username for ‘https://github.com’ 解决办法
  2. git操作是出现Username for ‘https://github.com’:的验证问题

6. 参考

  1. 上传本地文件(夹)到GitHub和更新仓库文件
  2. 两种方法上传本地文件到github

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/750865.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【PLC】现场总线和工业以太网汇总

1、 现场总线 1.1 什么是现场总线 1&#xff09;非专业描述&#xff1a; 如下图&#xff1a;“人机界面”一般通过以太网连接“控制器(PLC)”&#xff0c;“控制器(PLC)”通过 “现场总线”和现场设备连接。 2&#xff09;专业描述&#xff08;维基百科&#xff09; 现场总线…

【好玩的经典游戏】Docker环境下部署经典贪吃蛇小游戏

【好玩的经典游戏】Docker环境下部署经典贪吃蛇小游戏 前言一、相关介绍1.1 httpd介绍1.2 贪吃蛇小游戏介绍二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍三、检查本地环境3.1 检查系统版本3.2 检查Docker服务状态四、下载httpd镜像五、创建httpd容器5.1 新建目录5.2 创建…

开源项目_搭建对象存储服务MinIO

1 简介 MinIO 是一个开源的对象存储服务器&#xff0c;与 Amazon S3 兼容。它的设计目标是为大规模数据工作负载提供简单、安全和高性能的存储。 以下是 MinIO 的一些主要特性&#xff1a;高性能&#xff0c;S3 兼容&#xff0c;安全性&#xff0c;可扩展性&#xff0c;开源&…

WAAP全站防护是什么,有什么作用

WAAP全站防护是基于风险管理和WAAP理念打造的安全方案&#xff0c;以“体系化主动安全” 取代安全产品的简单叠加&#xff0c;为各类Web、API业务等防御来自网络层和应用层的攻击&#xff0c;帮助企业全面提升Web安全水位和安全运营效率。 主要的特性在于&#xff1a; 1.全周…

学习Java十一天总结

目录 一、走进Java编程世界 二、变量、常量和运算符 三、if选择结构 四、switch选择结构 五、while循环结构 六、for循环结构 七、数组 八、深度循环结构 九、类和对象 十、类的无参方法 十一、类的带参方法 十二、字符串 一、走进Java编程世界 程序是为了让计算机…

C语言例:设 int a=11; 则表达式 a+=a-=a*a 的值

注&#xff1a;软件为VC6.0 代码如下&#xff1a; #include<stdio.h> int main(void) {int a11, b;b (aa-a*a); //a*a121 -->a-121结果为a-110 -->a-110结果为a-220printf("表达式aa-a*a 的值为&#xff1a; %d\n",b);return 0; } //优先级&#x…

常用pip命令

pip是一个现代的&#xff0c;通用的Python包管理工具。它提供了对Python包的查找、下载、安装、卸载的功能。 安装库 pip install package_name如果你想从特定的源安装&#xff0c;可以使用-i或--index-url选项&#xff1a; pip install package_name -i https://pypi.examp…

mac安装rust环境

mac安装rust环境 老规矩官方文档 1. mac官网使用的是脚本安装, 至于为啥没使用brew也没推荐俺也不太清楚 curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh2. 一般来说中途会遇见有一个选择我这里选择直接回车默认安装(如果以后我研究明白的话会进行更新, 现在是…

Java-Thread 几种创建方式

Thread 创建线程的四种方法&#xff1a; 继承Thread类创建线程类&#xff0c;然后创建线程实例。实现Runnable借口创建线程目标类&#xff0c;然后创建线程实例。使用Callable和FutureTask创建异步任务&#xff0c;然后创建线程实例。通过线程池创建线程 Runnable异步任务的…

ADO .Net操作SQL Server数据库

//ADO.NET是.NET Framework提供的数据访问服务的类库&#xff0c;应用程序可以使用ADO.NET连接到这些数据源&#xff0c;并检索、处理和更新数据 //常用的数据源包括四种&#xff1a;&#xff08;1&#xff09;Microsoft SQL Server数据源&#xff1a;使用System.Data.SqlClien…

Python3 字符编解码

Python3 字符编解码 什么是字符编解码 编码&#xff1a;根据编码格式将人类认识的字符转为字节流。解码&#xff1a;根据编码格式将字节流转为人类认识的字符。 Python3 中的字符编码 utf-8为Python3的默认编码格式&#xff0c;可通过以下语句查看&#xff1a; import sys p…

MongoDB聚合运算符:$floor

文章目录 语法使用举例 $floor聚合运算符返回小于等于指定数值的最大整数&#xff0c;相当于取整函数。 语法 { $floor: <number> }<number>表达式为数值表达式。 使用 如果参数<number>的值为null或引用的字段不存在&#xff0c;$floor返回null&#xf…

DC-1靶机渗透测试

DC-1靶机渗透测试 一、信息搜集1、嗅探寻找存活主机2、查找开放端口3、查找敏感目录 二、漏洞利用1、web访问2、寻找Drupal 的config文件3、寻找网站登录密码4、寻找靶机的用户名和密码5、远程登录6、提权 一、信息搜集 1、嗅探寻找存活主机 命令&#xff1a;arp-scan -l 找到…

基于单片机的智能小车泊车系统设计

摘 要:随着信息技术的进步,汽车逐渐朝着安全、智能方向发展,智能泊车系统的出现不仅能帮助人们更加快速、安全地完成泊车操作,而且适用于狭小空间的泊车操作,降低驾驶员泊车负担,减轻泊车交通事故发生率。文章基于单片机设计自动泊车系统,以单片机为核心来实现信息收集及…

【Numpy】练习题100道(51-75题)

&#x1f33b;个人主页&#xff1a;相洋同学 &#x1f947;学习在于行动、总结和坚持&#xff0c;共勉&#xff01; #学习笔记# Git-hub链接 目录 1.题目列表 2.题解 1.题目列表 51. 创建一个表示位置&#xff08;x,y&#xff09;和颜色&#xff08;r,g,b&#xff09;的结…

C#控制台贪吃蛇

Console.Write("");// 第一次生成食物位置 // 随机生成一个食物的位置 // 食物生成完成后判断食物生成的位置与现在的蛇的身体或者障碍物有冲突 // 食物的位置与蛇的身体或者障碍物冲突了&#xff0c;那么一直重新生成食物&#xff0c;直到生成不冲突…

19双体系Java学习之数组的Arrays类

数组的Arrays类 ★小贴士 sort方法对数组进行排序&#xff0c;方法调用完成后&#xff0c;数组按升序排列。 binarySearch方法对数组进行二分查找&#xff0c;如果能找到需要查找的元素则返回该元素的下标&#xff0c;否则返回一个负数&#xff0c;详见binarySearch的范例代码。…

如何将Excel两列数据转换为统计图、曲线图、折线图?如何自定义某一列作为Excel的统计图横纵坐标?

这样&#xff0c;横坐标就更换为指定选中的数据了 我们还可以修改统计图的样式 也可以修改统计图的类型

代码随想录算法训练营第41天 | 01背包问题(二维+一维) ,416. 分割等和子集

动态规划章节理论基础&#xff1a; https://programmercarl.com/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 01背包理论基础 链接&#xff1a;https://programmercarl.com/%E8%83%8C%E5%8C%85%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%8001%…

Linux-centos系统中如何去除配置文件中的注释部分

1.备份配置文件 将原有的配置文件备份到一个新的文件 备份配置文件可以在我们误操作时及时的补救 #将原有的配置文件复制一份到指定的文件夹 &#xff08;这个文件夹用来专门存放配置文件的源文件&#xff0c;文件夹自行创建&#xff09;cp filename.conf /file_path/config…