远程仓库------GitHub
注意:本文主要讲解的是,如何快速的将本地仓库的代码托管到GitHub上,如果不知道Git是什么的可以参考我的博客 ====> 分布式版本控制系统------Git
一、在GitHub创建远程仓库
- 这样GitHub会自动为我们创建一个
README.md
文件。创建完毕后,可以看到README.md
文件
二、在GitHub上添加密钥
- 由于本地的
Git
仓库和GitHub
仓库之间的传输是通过SSH
加密的,所以需要做如下的设置:-
第1步:创建
SSH Key
。先在用户主目录下,看看有没有.ssh
目录,如果有,再看看这个目录下有没有id_rsa
和id_rsa.pub
这两个文件,如果已经有了,可以直接跳过第一步。如果没有,打开Shell
(Windows
下打开Git Bash
),创建SSH Key
:bashssh-keygen -t rsa -C "youremail@example.com"
- 你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
- 如果一切顺利的话,可以在用户主目录里找到
.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key
的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人。
-
第2步:登陆
GitHub
,打开"Account settings","SSH Keys"页面:然后,点"Add SSH Key",填上任意Title,在Key文本框里粘贴id_rsa.pub
文件的内容:
-
三、克隆远程仓库的代码到本地
-
如果我们本地没有代码或者不是最新的代码,这可以将远程库中的代码克隆到本地来。
-
首先找到远程库的地址如下:
-
在
git bash
命令行中输入如下命令:bashgit clone '远程库的地址'
-
可以看到当前目录下多了一个test文件夹,进入该文件夹内可以看到克隆下来了远程库中的
readme.md
文件。
四、如何将本地仓库第一次同步到Github
-
现在的情景是,本地已经创建了一个
Git
仓库,又想在GitHub
创建一个Git
仓库,并且让这两个仓库进行远程同步,这样,GitHub
上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,一举多得。 -
第一步:在
GitHub
上创建一个远程仓库。 -
第二步:在
GitHub
上添加Git
和GitHub
通信的SSH
密钥。 -
第三步:将本地仓库的代码同步到远程仓库。
bashgit remote add origin "远程库的地址" git push -u origin main
- 由于远程库的内容是空的,我们第一次推送
main
分支时,加上-u
参数,Git不但会把本地的main
分支内容推送到远程新的main
分支,还会把本地的main
分支和远程的main
分支关联起来,以后的推送或者拉取时就可以简化命令。
- 由于远程库的内容是空的,我们第一次推送
-
在远程库中可以查看到我们同步的本地库中的
test.txt
文件。
五、总结
- 第一次使用
Git
需要生成SSH
密钥,使用命令ssh-keygen -t rsa -C "youremail@example.com"
,就可以在用户主目录下找到.ssh
目录了。 - 将
GitHub
上的代码克隆到本机上,使用命令git clone '远程库的地址'
。 - 要关联一个远程库,使用命令
git remote add origin '远程库的地址'
;关联一个远程库时必须给远程库指定一个名字,origin
是默认习惯命名。- 关联后,使用命令
git push -u origin main
第一次推送main
(如果你本地库的分支名叫master
,就把main
替换成master
)分支的所有内容。 - 此后,每次本地提交后,只要有必要,就可以使用命令
git push origin master
推送最新修改。
- 关联后,使用命令
- 如果添加远程库的时候写错了,或者想删除远程库,可以用
git remove rm <name>
命令。使用前建议先用git remote -v
查看远程库信息:然后根据名字删除,比如删除origin
:git rmmote rm origin
,注意:这里的删除
其实是解除了本地和远程的绑定关系,并不是物理上删除了远程库。远程库本身没有任何改动。要真正删除远程库,需要登录到GitHub
,在后台页面找到删除按钮再删除。
1.常用命令总结
bash
ssh-keygen -t rsa -C <"youremail@example.com"> #生成SSH密钥
git clone '远程库的地址'> #将远程库中的文件克隆到本地Git管理
git remote add <remote_name> #关联一个远程库到本地
git remote -v #查看关联的远程库的信息
git remote rm <remote_name> #删除本地关联的远程库
git push -u <remote_name> <local_branch_name> #第一次推送本地库到远程库
git push <remote_name> <local_branch_name> #之后推送本地修改的内容