Ubuntu使用Git命令上传和下载代码以及各种踩坑

记录使用 git 时遇到的一些问题

git 的安装和配置

安装

在终端中使用 sudo apt-get install git 安装 git

创建SSH key

在本地创建 SSH Key ssh-keygen -t rsa -C "[email protected]"(这个邮箱和github里的邮箱好像需要对应)
创建的文件保存在 ~/.ssh/ 目录下,进入目录之后使用 cat id_rsa 查看生成的密钥
然后将其复制到 github 中
Ubuntu使用Git命令上传和下载代码以及各种踩坑_第1张图片

配置信息

配置用户名 git config --global user.name "your name"
配置邮箱 git config --global user.email [email protected]

在 github 创建一个仓库

Ubuntu使用Git命令上传和下载代码以及各种踩坑_第2张图片
点击创建之后,
Ubuntu使用Git命令上传和下载代码以及各种踩坑_第3张图片
我们可以看到如何向这个仓库中上传代码的命令

echo "# Test" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin [email protected]:Hrqingqing/Test.git
git push -u origin main

上传文件

我们进入到文件目录,我这里使用 Test 目录作为测试
Ubuntu使用Git命令上传和下载代码以及各种踩坑_第4张图片
输入以下命令
Ubuntu使用Git命令上传和下载代码以及各种踩坑_第5张图片
可以看到此时 github 上已经有上传文件的信息了
Ubuntu使用Git命令上传和下载代码以及各种踩坑_第6张图片

删除 github 中的文件

可以在 github 中手动删除,打开文件,然后点击删除即可
Ubuntu使用Git命令上传和下载代码以及各种踩坑_第7张图片
另一种是在本地删除再次上传,首先我们使用 git clone [email protected]:Hrqingqing/Test.git命令将其克隆到本地,然后执行 git rm file_name 将文件删除,执行 git commit -m " ",之后执行 git push -u origin main 就可以了

遇到的问题(踩坑)

  • Branch main set up to track remote branch main from origin.
    Everything up-to-date

如果没有对文件进行更新,再次使用 push -u origin main 就会出现以上信息,意思是没有对文件进行改动就再次上传了。
还有一种情况就是未对新建的文件使用 git commit -m "描述信息" 命令,如下图
Ubuntu使用Git命令上传和下载代码以及各种踩坑_第8张图片

  • fatal: remote origin already exists.

这是因为重复使用了 git remote add origin [email protected]:Hrqingqing/Test.git 命令,我们可以使用git remote -v 查看,然后使用 git remote rm origin 进行删除然后再添加

  • error: src refspec master does not match any.
    error: failed to push some refs to ‘[email protected]:Hrqingqing/Test.git’

当我们的分支为 main 时,再向其它分支上传时(例如git push -u origin master),会出现以上错误,这是因为本地没有 master 分支。
先创建 master 分支 git checkout -b master
然后删除之前的 main 分支 git branch -D main
再删除 github 的 main 分支 git push origin --delete main
此时再使用 git push -u origin master 依旧会报同样的错误,但此时我们可以使用 git push -u origin master -f 命令强制进行 push,大功告成

  • error:could not lock config file …/.gitconfig:No such file or directory

在使用 git config --local user.name "user_name" 时报的错,可以先在那个目录下使用 git init,之后再创建密钥,配置用户名和邮箱就可以了。

  • ssh: connect to host github.com port 22: Connection timed out

首先使用 ssh -T [email protected] 测试,如果出现:You’ve successfully authenticated,那么恭喜你,连接成功可以使用了。如果出现:ssh: connect to host github.com port 22: Connection timed out,很遗憾连接超时。
连接失败后,可以同样试试 ssh -T [email protected]ssh -T -p 443 [email protected]ssh -T -p 443 [email protected],检查是否有异常。

重新配置 config,使用 vim ~/,ssh/config

Host github.com							/* 服务器地址:github.com */
User YourEmail(这里可以直接填 git)		/* 用户账号:github上的注册邮箱 */
Hostname ssh.github.com					/* 服务器地址为github地址*/
PreferredAuthentications publickey		/* 采用公匙 */
IdentityFile ~/.ssh/id_rsa				/* 公匙文件路径 */
Port 443								/* 端口 */

你可能感兴趣的:(linux,github,git,ubuntu,linux)