当前位置:   article > 正文

【经验总结】ubuntu 20.04 git 上传本地文件给 github,并解决出现的问题_ubuntu如何提交github项目鉴权失败

ubuntu如何提交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"
  • 1

查看钥匙

$ ls ~/.ssh
id_rsa  id_rsa.pub  known_hosts
$ cat ~/.ssh/id_rsa.pub
  • 1
  • 2
  • 3

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
  • 2
  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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  1. 新建本地代码仓库
$ cd ~/your_directory
  • 1

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

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

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

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

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

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

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

$ git commit -m "Update README file"
  • 1

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

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

$ git log
  • 1

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

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

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

$ git branch feature
  • 1

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

  feature
* main
  • 1
  • 2

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

$ git checkout feature
Switched to branch 'feature'
  • 1
  • 2

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

$ git branch -m feature new-feature
$ git branch
  main
* new-feature
  • 1
  • 2
  • 3
  • 4

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  1. 提交本地代码到Github

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

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

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

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

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

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

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

git push origin main
  • 1

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

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

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

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

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

git pull origin main
  • 1

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.git
   23bf525..b66b7cb  main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

5. 问题解决

5.1 fatal: 远程 origin 已经存在

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

git remote rm origin
  • 1

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
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/631233
推荐阅读
相关标签
  

闽ICP备14008679号