添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

上传本地文件(夹)到GitHub和更新仓库文件

本人在网上查了很多关于github上传的资料,终于,上传成功,中间踩了很多坑(可能是本人了解比较少),所以,写下这篇文章,希望给和我遇到相同问题的小伙伴们,能提供参考。

1. 使用git上传文件到github

2. 在github上创建仓库

如果已经建立好仓库了,忽略这部分;

如果github上没有仓库,需要创建对应的仓库,然后把本地的文件上传到github该仓库下。

  1. 登录github后,在已有仓库下,点击右上角“New”,如下图

2. 在新的窗口中,输入仓库名称,勾选新建的仓库中会有一个README,最后点击“Create repository”,如下图

3. 这样就创建好了一个仓库,如下图

3. 设置SSH key

  1. 检查是否已经存在ssh key

按步骤3中的路径,检查 id_rsa.pub 这个文件是否存在,如果存在,则直接跳到步骤4;如果不存在,跳到步骤2;

2. 输入如下命令,然后按回车,需要输入两次字符串生成密钥,要记住这些字符串,以后提交要用,也可以直接按回车过,建议 直接按回车 ,出现下图显示,则说明密钥已生成

ssh-keygen -t rsa -C "email"  # email为你在github上注册的邮箱

3. 打开C:\Users\thinkpad.ssh,可以看到id_rsa.pub这个文件

4. 在github setting里添加SSH keys,按下图步骤进行即可;

至此,SSH key 设置完成

4. 本地上传至github

本地文件

在本地已经创建一个test_git文件夹,里面有一个文件夹,需要上传picture

注意:如果当前目录下有多个文件夹,可以一起上传

通过git上传文件

首先进入你的master文件夹下,右键打开“Git Bash Here” ,弹出命令窗口 ,输入如下语句进行上传

  1. git init :在此文件夹生成一个.git隐藏文件;
  2. git add . : 将文件添加到缓存区( 注意这个".",是有空格的,"."代表这个test这个文件夹下的目录全部都提交,也可以通过git add 文件名 提交指定的文件);
  3. git status :查看现在的状态,也可以不看,随你啦,可以看到picture文件夹里面的内容都提交上去了;
  4. git commit -m "这里是注释" :提交添加到缓存区的文件
  5. git remote add origin xxx @xxx/test.git : 添加新的git方式的origin, github上创建好的仓库和本地仓库进行关联

6. git push origin master : 把本地库的所有内容推送到远程仓库(github)上,即上传本地文件,如果显示下图,则说明上传成功

可能遇到的报错

  • 如果报上图的错误,则需要输入 git pull origin master命令;
  • 如果报上图的错误, 其实这个问题是因为 两个 根本不相干的 git 库, 一个是本地库(只有picture), 一个是远端库(test仓库里只有readme文件), 然后本地要去推送到远端, 远端觉得这个本地库跟自己不相干, 所以告知无法合并 ,解决方法:先把两部分内容合并以下,有两种方式
    • 方式一:输入“ git pull --rebase origin master ” ,然后输入git push origin master语句,即可
    • 方式二:输入“ git pull origin master --allow-unrelated-histories ”(会弹到文件里面,输入“:wq”退出该文件,如果没有遇到,请忽略),然后输入git push origin master语句,即可

刷新github,则可以发现,上传成功,如下图

至此,文件上传到github整个步骤完成;

附录

可能遇到问题

如果遇到报错fatal: repository 'xxx.git/' not found,即没找到'xxx.git'。

原因:repository地址被更改了 。比如现在要更改repository名称:由原来的“ XXX @XXX/a.git”改为现在的 “ xxx @xxx/b.git”

解决方法:

方式1:

git remote set-url origin https://xxx@xxx/B.git   # 设置远程url为修改后的地址
git remote -v    # 查看remote链接

运行结果如下

方式2:

git remote rm origin # 移出旧的http的origin