上传本地文件到Github远程仓库

环境:windows7 64位

前提要求:已经有了github账号,已经安装了Git(一路默认,很简单)

一:创建Github repository(仓库)

勾选 Initialize this repository with a README

1、假如你已经有了Github账号,没有的话去才注册一个,很简单。

2、点击头像旁边的+号,如下图
这里写图片描述

3、创建(注意:这里在README处勾选了,这样的话在你的github仓库中会为你自动生成一个README.md

这里写图片描述

4、最后的效果如下
这里写图片描述


二、为Github账户添加SSH key

ssh key 基础知识扫盲:

加密传输的算法有好多,git使用rsa,rsa要解决的一个核心问题是,如何使用一对特定的数字,使其中一个数字可以用来加密,而另外一个数字可以用来解密。这两个数字就是你在使用git和github的时候所遇到的public key也就是公钥以及private key私钥。

其中,公钥就是那个用来加密的数字,这也就是为什么你在本机生成了公钥之后,要上传到github的原因。从github发回来的,用那公钥加密过的数据,可以用你本地的私钥来还原。

如果你的key丢失了,不管是公钥还是私钥,丢失一个都不能用了,解决方法也很简单,重新再生成一次,然后在github.com里再设置一次就行。


一、本地生成 ssh key

准备工作:绑定用户

右键 Git Bash Here,然后绑定用户名和邮箱
这里写图片描述
ps:用户名和邮箱作为你的唯一标识,–global这个参数,表示这台机器上的所有Git仓库都会使用这个配置,也可以指定仓库用不同的用户名和邮箱

1、首先检查本地是否已经有秘钥了

(因为我以前生成过秘钥,所以本地是有的)
这里写图片描述
或者在C:\Users\Administrator.ssh查看
这里写图片描述
2、如果没有的话,执行以下指令生成秘钥

ssh-keygen -t rsa -C "你的邮箱"

3、然后去按照上条方式查看以下有没有生成。

4、去C:\Users\Administrator.ssh里找到id_rsa.pub,用记事本打开,全选,复制,得到ssh key公钥。


二、为github账号设置ssh key

1、进入github,点击settings
这里写图片描述
2、然后打开SSH keys菜单,Add SSH key新增秘钥,填上标题(随意,建议跟repository一致),然后将id_rsa.put文件中的key粘贴,然后Add key生成秘钥。
这里写图片描述
这里写图片描述

到此,github账号与本地的SSH key配置完成


三、上传本地文件到github上

一、基础知识补充

1、git init #把这个目录变成Git可以管理的仓库

2、git add README.md #本地README.md文件添加到远程仓库

3、git add . #不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部add了,注意空格

4、git commit -m “注释” #把文件提交到仓库

5、git remote add origin [email protected]:heimu24/blog-backup.git #本地关联远程仓库

6、git push -u origin master #把本地库的所有内容推送到远程库上(第一次需要加-u,后面就不用加了)


二、本地建立文件夹test,新建test.txt,接下来的目标就是把test.txt上传到github仓库

这里写图片描述

ps:git是不能管理空文件夹的,也就是说文件夹了必须有文件才能add

依次执行以下指令

1、git init # 初始化

之后你会发现文件夹下多了一个隐藏文件夹.git,这个目录是Git用来跟踪管理版本库的,不要修改
这里写图片描述

2、git add . #将所有文件添加到仓库,注意空格
3、git commit -m "注释" #注释内容自行修改
4、git remote add origin git@github.com:heimu24/mytest.git   #本地文件远程关联github仓库

ps:后面的地址请自行修改,地址怎么来的,见下图。
这里写图片描述

5、git push -u origin master #上传本地代码
总的流程如下图:

这里写图片描述

然后你会发现出错了?如上图 !

错误原因:github中的README.md文件没有download到本地代码目录中

解决方案:执行以下指令

1、git pull --rebase origin master

这个时候查看本地代码目录,会发现多了个README.md文件
这里写图片描述

此时再次执行以下语句,上传代码

git push -u origin master

这里写图片描述

然后去github仓库查看,成功 ! ! ! ! 如下图:

这里写图片描述

===============================================================================

Again ! ! ! !

然后我们接着在本地新建一个文件test_new.txt,再次上传。直接执行以下指令

1、git add .
2、git commit -m "注释"
3、git push origin master #只有第一次需要加 -u,以后可以不加

查看效果

这里写图片描述

这里写图片描述


总结:

上述步骤在新建repository的时候,由于初始化了README.md,所以出了错,后来成功解决了这个问题。

如果在新建repository的时候,不勾选的?不初始化README.md呢?

效果如下:
这里写图片描述

里面是空的,什么都没有,只有提示消息,也没有README.md

这里写图片描述

上传文件,没有报错,直接成功,

(因为错误就是因为远程仓库的README.md没有download到本地,现在远程仓库没有该文件,
所以本地也就不需要download,也就不报错啊)
这里写图片描述

最后的效果

这里写图片描述

ps:
README.md是属于仓库的说明书,建议是要有的。
1、你可以在github新建README.md,这个时候如果本地上传文件,你同样需要把README.md给download到本地
2、你可以在本地新建README.md文件,然后 git add README.md 上传到仓库
总之不管怎么样,远程仓库没有,本地就可以不要,远程仓库有,本地就必须有,保持一致


参考链接:

https://www.cnblogs.com/specter45/p/github.html

Git 提示fatal: remote origin already exists 错误解决办法:

http://blog.csdn.net/top_code/article/details/50381432

解决failed to push some refs to git:

http://www.jianshu.com/p/835e0a48c825

猜你喜欢

转载自blog.csdn.net/heimu24/article/details/81171422