现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得。
第一种情况:将本地仓库的内容上传给远程仓库:
第一步,登陆GitHub,然后,在右上角找到“New repository”按钮,创建一个新的仓库:
创建好的仓库
目前,在GitHub上的这个oldboy_website仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
第二步,我们根据GitHub的提示,在本地已有的git_trainning仓库(即当前git_trainning目录)下运行命令:
$ git remote add origin [email protected]:triaquae/oldboy_website.git #添加远程仓库
有时会出现错误提示:fatal: remote origin already exists.
解决办法如下:
1、先输入$ git remote rm origin
2、再输入$ git remote add origin [email protected]:djqiang/gitdemo.git 就不会报错了!
来自
$ git push -u origin master #推到远程
The authenticity of host 'github.com (192.30.253.113)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes #第一次推会出现,写yes
Warning: Permanently added 'github.com,192.30.253.113' (RSA) to the list of known hosts.
Counting objects: 20, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (14/14), done.
Writing objects: 100% (20/20), 1.76 KiB | 0 bytes/s, done.
Total 20 (delta 4), reused 0 (delta 0)
remote: Resolving deltas: 100% (4/4), done.
To [email protected]:triaquae/oldboy_website.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
请千万注意,把上面的triaquae替换成你自己的GitHub账户名,否则,你在本地关联的就是我的远程库,关联没有问题,但是你以后推送是推不上去的,因为你的SSH Key公钥不在我的账户列表中。
添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
此时刷新远程仓库页面, 就看到了你刚从本地推上来的代码了
从现在起,只要本地作了提交,就可以通过命令:
|
$ git push origin master |
what ? 不信?那帮你试一下吧
创建一个index.html文件,同时上传到远程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ vim index.html $ git add . $ git commit -m "add home page"
[master 8675486] add home page 1 file changed, 6 insertions(+) create mode 100644 index.html
$ git push origin master #推到远程
Counting objects: 3, done. Delta compression using up to 8 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 362 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To [email protected]:triaquae/oldboy_website.git 03df00a..8675486 master -> master
|
然后刷新下远程仓库页面,就看到你的新创建的文件了
第二种情况:从远程仓库克隆:
我们讲了先有本地库,后有远程库的时候,如何关联远程库。
现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。
第一步,登陆GitHub,创建一个新的仓库,名字叫gitskills:
我们勾选Initialize this repository with a README,这样GitHub会自动为我们创建一个README.md文件。创建完毕
后,可以看到README.md文件:
第二步,远程库已经准备好了,下一步是用命令git clone克隆一个本地库:
在本地找一个你想存放这个远程仓库的目录,然后在本地命令行用git clone 命令来克隆这个远程库
1 2 3 4 5 6 7 8 9 10 11 |
$ git clone [email protected]:triaquae/gitskills.git Cloning into 'gitskills'... Warning: Permanently added the RSA host key for IP address '192.30.253.112' to the list of known hosts. remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (3/3), done. Checking connectivity... done.
$ cd gitskills/ #进入刚clone下来的目录 $ ls README.md |
克隆下来之后,你就可以在这个目录下创建自己的工作内容了,创建的文件提交之后同样使用命令$ git push origin master #推到远程。
如果有多个人协作开发,那么每个人各自从远程克隆一份就可以了。
你也许还注意到,GitHub给出的地址不止一个,还可以用https://github.com/triaquae/gitskills.git 这样的地址。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。
使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。
现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得。
第一种情况:将本地仓库的内容上传给远程仓库:
第一步,登陆GitHub,然后,在右上角找到“New repository”按钮,创建一个新的仓库:
创建好的仓库
目前,在GitHub上的这个oldboy_website仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
第二步,我们根据GitHub的提示,在本地已有的git_trainning仓库(即当前git_trainning目录)下运行命令:
$ git remote add origin [email protected]:triaquae/oldboy_website.git #添加远程仓库
有时会出现错误提示:fatal: remote origin already exists.
解决办法如下:
1、先输入$ git remote rm origin
2、再输入$ git remote add origin [email protected]:djqiang/gitdemo.git 就不会报错了!
来自
$ git push -u origin master #推到远程
The authenticity of host 'github.com (192.30.253.113)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes #第一次推会出现,写yes
Warning: Permanently added 'github.com,192.30.253.113' (RSA) to the list of known hosts.
Counting objects: 20, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (14/14), done.
Writing objects: 100% (20/20), 1.76 KiB | 0 bytes/s, done.
Total 20 (delta 4), reused 0 (delta 0)
remote: Resolving deltas: 100% (4/4), done.
To [email protected]:triaquae/oldboy_website.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
请千万注意,把上面的triaquae替换成你自己的GitHub账户名,否则,你在本地关联的就是我的远程库,关联没有问题,但是你以后推送是推不上去的,因为你的SSH Key公钥不在我的账户列表中。
添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
此时刷新远程仓库页面, 就看到了你刚从本地推上来的代码了
从现在起,只要本地作了提交,就可以通过命令:
|
$ git push origin master |
what ? 不信?那帮你试一下吧
创建一个index.html文件,同时上传到远程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ vim index.html $ git add . $ git commit -m "add home page"
[master 8675486] add home page 1 file changed, 6 insertions(+) create mode 100644 index.html
$ git push origin master #推到远程
Counting objects: 3, done. Delta compression using up to 8 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 362 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To [email protected]:triaquae/oldboy_website.git 03df00a..8675486 master -> master
|
然后刷新下远程仓库页面,就看到你的新创建的文件了
第二种情况:从远程仓库克隆:
我们讲了先有本地库,后有远程库的时候,如何关联远程库。
现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。
第一步,登陆GitHub,创建一个新的仓库,名字叫gitskills:
我们勾选Initialize this repository with a README,这样GitHub会自动为我们创建一个README.md文件。创建完毕
后,可以看到README.md文件:
第二步,远程库已经准备好了,下一步是用命令git clone克隆一个本地库:
在本地找一个你想存放这个远程仓库的目录,然后在本地命令行用git clone 命令来克隆这个远程库
1 2 3 4 5 6 7 8 9 10 11 |
$ git clone [email protected]:triaquae/gitskills.git Cloning into 'gitskills'... Warning: Permanently added the RSA host key for IP address '192.30.253.112' to the list of known hosts. remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (3/3), done. Checking connectivity... done.
$ cd gitskills/ #进入刚clone下来的目录 $ ls README.md |
克隆下来之后,你就可以在这个目录下创建自己的工作内容了,创建的文件提交之后同样使用命令$ git push origin master #推到远程。
如果有多个人协作开发,那么每个人各自从远程克隆一份就可以了。
你也许还注意到,GitHub给出的地址不止一个,还可以用https://github.com/triaquae/gitskills.git 这样的地址。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。
使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。