一、GitHub基础知识
1、地址
2、创建远程库
点击加号,点击New repository创建远程库
Owner:仓库所属人
Repository name:仓库名
Description:描述
Public:仓库类型是公有的,所有人都可以看到,你可以选择谁能提交。
Private:仓库类型是私有的,可以选择谁能看到,谁能提交,但是收费。
3、查看远程库地址
远程库有两种地址,https格式和ssh格式
二、关于GitHub的命令
1、基础命令
git remote -v:查看当前所有远程地址别名
git remote add [别名] [远程地址] :新增别名,远程库的地址比较长,所以设置一个别名
git push [别名] [分支名]
示例:将本地库的testaaa.txt文件推送到远程库。
git clone [远程地址]:克隆远程库
演示:首先找到远程地址,然后执行克隆命令。
注意:clone命令有三个效果
完整的把远程库下载到本地
创建origin 远程地址别名
初始化本地库
2、邀请成员加入团队
上面演示了另外一个成员clone下了仓库,他修改后是不能推送到远程仓库的,因为没有权限,看下图:
下面贴出邀请步骤:
被邀请人会收到邮件:
被邀请人收到邮件后复制红框框起来的地址,登录GitHub后粘贴到地址栏:在相应位置点击接受,变成了团队成员。
变成团队成员后再次推送到GitHub,成功。
git pull [远程库地址别名] [远程分支名]:拉取操作,从远程库获取文件,并且合并到本地库。相当于,pull=fetch+merge
git fetch [远程库地址别名] [远程分支名]:获取远程文件操作,获取后,本地库读到的还是之前的内容,因为并没有合并。
git merge [远程库地址别名/远程分支名]:合并操作,远程库的内容合并到本地库。
演示:alei1234将修改后的内容推送到GitHub后,切换回wrenlei,执行fetch操作,本地库还是之前的内容
执行完merge后,本地库内容被合并为新内容:
如果,alei1234修改后推送到远程库,wrenlei直接执行merge操作,不会读取到远程库新内容,必须先fetch。
直接使用pull命令
解决冲突:如果不是基于GitHub远程库的最新版做的修改,不能推送,必须先拉取。拉取下来如果进入冲突状态,则按照“分支冲突解决”操作解决即可。
示例:现在wrenlei先修改、推送到远程库,然后alei1234不拉取,然后修改、推送到远程库,冲突失败。
现在解决冲突,alei1234先拉取,解决冲突后一定git add、git commit 不加文件名 ,然后推送。
3、跨团队协作操作
新账号leishen1234作为团队外的一员,现在想
(1)wrenlei登录GitHub,复制仓库地址,发给leishen1234,https://github.com/wrenlei/testcangku1.git
(2)leishen1234登录GitHub,复制地址到地址栏粘贴,
(3)leishen1234从他的远程库clone一份,修改后推送到远程库。
(4)leishen1234执行 Pull Request操作,可以提交说明。
(5)wrenlei登录GitHub,查看leishen1234发送过来的代码
审核代码,查看修改了什么。
合并代码,最下面的评论或者留言会发送邮件
(6)wrenlei可以在本地拉取文件了
4、SSH免密登录
GitHub的仓库地址提供两种方式,一种是http,另一种是SSH,http每天推送都会填写用户名、密码。SSH可以通过配置免去填写。只能为一个账号设置。
(1)进入当前用户的家目录
(2)删除.ssh 目录
(3)运行命令生成.ssh 密钥目录(ssh-keygen -t rsa -C 邮箱)注意:这里-C 这个参数是大写的C
(4)进入.ssh 目录查看文件列表
(5)查看id_rsa.pub 文件内容
(6)复制id_rsa.pub 文件内容,登录GitHub,点击用户头像→Settings→SSH and GPG keys
(7)点击New SSH Key
测试:需要重启起一个别名,用ssh的地址。
下图可以看到测试成功。
原文:https://www.cnblogs.com/javasl/p/12589546.html