<1> 先在本地git中和github中分别创建一个仓库
a、创建本地仓库
b、创建远程仓库
<2>由于本地仓库与远程仓库的传输是通过SSH加密的,首先创建SSK KEY
a、本地是否已经设置过SSK,找到用户目录,检查有没有.ssh目录,再看这个目录下有没有id_rsa和id_rsa.pub这两个文件
b、如果没有上述三个目录,可以在Windows目录下打开Git Bash,创建SSH KEY
首先配置git命令的环境变量:
到目前为止:可以在用户主目录里找到.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人。
<3>在github中注册刚刚生成的公钥, 让远程仓库可以识别上传资源的确实是本人
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
将.ssh目录下的公钥的内容粘贴到github这个为止,注册一个SSH Key
<4>将本地库的master分支与远程库的master分支建立联系
目前,在GitHub上仓库还是空的,这时候可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
$ git remote add origin [email protected]:michaelliao/learngit.git
a、首先检查本地库有没有已经关联的远程库,如果已经有了可以删除,或者可以重新建立一个,别重名
查询: git remote -v
000@WIN-5B0M5RN6I1I MINGW64 /e/Git_Repository (master)
$ git remote -v
origin https://github.com/wet5649/keepSmile.git (fetch)
origin https://github.com/wet5649/keepSmile.git (push)
查询之后,发现已经关联了两个远程库,可以先删除这种关联。
删除:git remote remove origin
000@WIN-5B0M5RN6I1I MINGW64 /e/Git_Repository (master)
$ git remote remove origin
000@WIN-5B0M5RN6I1I MINGW64 /e/Git_Repository (master)
$ git remote -v
新建:git remote add origin 远程库的地址(可以使用https或者ssh的方式新建)
000@WIN-5B0M5RN6I1I MINGW64 /e/Git_Repository (master)
$ git remote add origin [email protected]:wet5649/tedu.git
<5>将本地库的内容推送到远程仓库上
a、在建立本地库后,首先需要将本地库文件夹下的文件都添加到本地库暂存区中
git add .
000@WIN-5B0M5RN6I1I MINGW64 /e/Git_Repository (master)
$ git add .
出现报错信息:在项目根目录下找到 .git 文件夹。找到文件夹里面的index.lock 文件,将其删除,即可解决问题。
重新执行命令:$ git add . //这个点就是代表目录下的全部文件
b、将本地暂存区的内容提交到本地库中
git commit -m "注释内容"
000@WIN-5B0M5RN6I1I MINGW64 /e/Git_Repository (master)
$ git commit -m "第一次提交文件到远程库"
[master 5edfdb8] 第一次提交文件到远程库
1 file changed, 1 deletion(-)
delete mode 100644 helloGit.txt
c、将本地库的内容上传到远程库中
git push -u origin master
000@WIN-5B0M5RN6I1I MINGW64 /e/Git_Repository (master)
$ git push -u origin master
Warning: Permanently added the RSA host key for IP address '192.30.253.113' to the list of known hosts.
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 4 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (7/7), 693 bytes | 693.00 KiB/s, done.
Total 7 (delta 0), reused 0 (delta 0)
To github.com:wet5649/tedu.git
* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
用git push
命令,实际上是把当前分支master
推送到远程;由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
可以看到本地的内容已经上传到了远程仓库中。