SSH 登录:
每个远程仓库都有两种地址:HTTPS 和 SSH。如果是 HTTPS 的地址,每次 push 的时候都要输入用户名和密码以校验身份。如果 SSH 的方式,就不再需要每次都输入用户名和密码了。
cd ~
进入用户的家目录,执行ssh-keygen -t rsa -C 【注册 GitHub 的邮箱】
生成 ssh 秘钥。cd .ssh/
进入 ssh 目录,会看到生成了两个文件 id_rsa 和 id_rsa.pub,打开 id_rsa.pub 复制其中的内容。- 登录 GitHub,找到 Settings -> SSH and GPG keys,将复制的内容粘贴到 Key 中即可。
创建远程仓库(以 GitHub 为例):
登陆 GitHub,点击右上角的“New repository”按钮(或者其他新建仓库的按钮),进入创建仓库的页面创建一个远程仓库。
git remote add 【自定义的仓库别名】 【远程仓库地址】
关联远程仓库:
- 在上述本地仓库的基础上,进入本地仓库所在目录的终端,执行
git remote add origin https://github.com/huadangmao/test.git
,为本地仓库关联https://github.com/huadangmao/test.git
这个远程仓库并为其指定一个简短的别名origin
。
git push 【自定义的仓库别名】 【分支名】
推送到远程仓库:
- 在本地仓库所在目录的终端,执行
git push origin master
。Enumerating objects: 31, done. Counting objects: 100% (31/31), done. Delta compression using up to 8 threads Compressing objects: 100% (18/18), done. Writing objects: 100% (31/31), 2.38 KiB | 610.00 KiB/s, done. Total 31 (delta 0), reused 0 (delta 0), pack-reused 0 To https://github.com/huadangmao/test.git* [new branch] master -> master // 将本地的 master 分支推送到远程的 master 分支
git clone 【远程仓库地址】
克隆远程仓库:
- 进入想要存放项目的目录下的终端,执行
git clone https://github.com/huadangmao/test.git
克隆远程仓库到本地。git clone
默认会初始化本地库,所以不需要自己初始化。
git pull 【自定义的仓库别名】【分支名】
从远程仓库拉取:
git fetch
:从远程仓库拉取代码到本地仓库,不会直接和本地的文件进行合并,也就是说并不会修改工作区的代码。
git pull
; 从远程仓库拉取代码到本地仓库,并直接和本地的文件进行合并。所以git fetch + git merge = git pull
。
git pull origin master
拉取远程仓库 master 分支的代码到本地仓库并合并(相当于:git fetch origin master
+git merge origin/master
)。
团队协作和跨团队协作:
团队协作:
示例:公司内部协作开发。
跨团队协作:
示例:有一个公司外部的人员 A 协助临时开发一个功能。他可以 fork 一份公司的远程库代码到自己的远程库;开发完成之后发起一个 pull request;公司主管人员审核之后,就可以 merge 到公司的远程库中了。
- A 访问公司的远程仓库地址,点击 Fork,就成功地 Fork 了一份公司的远程库代码到自己的远程库。
- A 克隆远程库代码到本地,进行修改之后 add commoit 到本地库,再 push 到自己的远程仓库。
- A 在自己的远程库中提交一个 pull request。
- 公司主管查看公司远程仓库中的 pull request,合并代码。
5. 此时公司主管再去 code 查看代码,即可看到更新的内容。