5、GitHub
git 官方的代码托管中心
远程仓库操作
命令名 | 作用 |
---|---|
git remote -v | 查看当前所有远程地址别名 |
git remote add 别名 远程仓库http地址 | 给远程仓库起别名 |
git push 别名【或者http地址】 分支 | 把本地分支的内容推送给远程仓库 |
git clone 远程地址 | 将远程仓库的内容克隆到本地 |
git pull 远程库别名 远程分支别名 | 将远程库对于分支的最新内容拉下来直接合并 |
1、创建远程库
- 首先去 https://github.com 里面注册一个账号,然后登录进去。
- 点击头像左边的加号 选第一个 new repository
- 然后进去填一个仓库的名称,建议跟本地项目名称一样,然后选择是否公开这个仓库
- 拉到最底下直接创建一个新仓库
- 之后就能看见创建好的仓库,复制你的仓库的 http 路径
2、代码推送 Push
-
打开本地git
git remote -v
查看所有远程地址,结果是没有git remote add 别名 远程地址
把刚才创建的远程仓库地址添加进来- 再次查看
git remote -v
所有远程地址,结果有两条,说这个远程仓库能push用也能pull和clone用
-
git pull 别名或http地址 本地分支名
推送本地内容到github仓库中,这个过程受网络影响,多试几次-
之后就会弹出一个窗口问你要登陆github,直接用浏览器打开
-
就会出现页面让你授权git凭证,点击 Authorize ,出现 Authorize successed就是成功授权了
- 我的还出现一个SSH用户名密码验证,验证好了才进行推送
-
然后这个页面就能关了,等待分支文件上传完成后,刷新页面,就能在远程仓库看见上传的项目了
Enumerating objects: 15, done. Counting objects: 100% (15/15), done. Delta compression using up to 8 threads Compressing objects: 100% (10/10), done. Writing objects: 100% (15/15), 1.08 KiB | 91.00 KiB/s, done. Total 15 (delta 3), reused 0 (delta 0), pack-reused 0 remote: Resolving deltas: 100% (3/3), done. To https://github.com/StringNameQinDie/git-demo.git * [new branch] master -> master
-
3、代码拉取 Pull
-
先打开远程仓库
- 对提交上去的文件进行修改,点那个🖊图形
- 修改好后,在底下填写提交日志信息
- 然后提交修改
-
在本地git上
git pull git-demo1[别名] master[分支名]
进行拉取remote: Enumerating objects: 5, done. remote: Counting objects: 100% (5/5), done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), 660 bytes | 60.00 KiB/s, done. From https://github.com/StringNameQinDie/git-demo * branch master -> FETCH_HEAD d5d03e0..063b007 master -> git-demo1/master Updating d5d03e0..063b007 Fast-forward test.txt | 1 + 1 file changed, 1 insertion(+) 报文记录了文件修改数、修改记录
-
可以查看一下本地库状态,发现是干净的,说明拉取会直接自动帮你提交至本地库,查看文件是否被修改,那么文件已经修改了。要随时使本地库跟远程仓库的版本一样
4、代码克隆 Clone
第三方想要对远程仓库的内容进行 clone ,创建一个空目录模拟
-
在空目录里面 打开一个 GitBash ,
- 直接
git clone 远程仓库HTTP链接
,直接就拉取好了 - 点击仓库名来到,仓库页面,点击code按钮,就能看见仓库http地址
- 而且初始化了当前的仓库
- 查看当前仓库的别名
git remote -v
会发现别名也被自定义好了
- 直接
-
说明在进行克隆代码时不需要登陆,而且会自动初始化仓库,创建远程仓库的同样的目录结构,创建了.git文件夹,会自动创建别名
$ git clone https://github.com/StringNameQinDie/git-demo.git Cloning into 'git-demo'... remote: Enumerating objects: 18, done. remote: Counting objects: 100% (18/18), done. remote: Compressing objects: 100% (9/9), done. remote: Total 18 (delta 4), reused 14 (delta 3), pack-reused 0 Receiving objects: 100% (18/18), done. Resolving deltas: 100% (4/4), done.
克隆的时候老实的右键粘贴,否则就会说 https 协议不支持咋的,不支持就重新输入命令复制粘贴
5、团队内协作
如果团队内的成员需要push分支去远程仓库,则需要这么操作【用两个账号模拟的】
- 做一些本地修改内容,并提交至本地仓库
- 先登录有仓库的那个账号,进入仓库,点击 Settings->collaborators[合作者]或者别的不行就翻译一下页面,像是组织合作者这种的就是 ,搜索团队成员的昵称,选定就能生成一个邀请函
- 然后添加好了后会生成一个邀请函地址,复制地址交给成员
- 再登陆另一个账号【另一个成员】,在站内浏览器导航栏粘贴并打开那个邀请函链接
- 就能看见邀请信息,同意之后就能共同操作邀请人的仓库
- 然后就能在本地添加远程仓库,提交分支,修改仓库文件
- 接下来
git push 远程仓库地址 分支名
将修改后的内容推送至团队仓库 - 在团队仓库中,有一个history记录着仓库的修改历史记录,点进去就能看见修改的内容和日志信息
6、跨团队协作
如果团队内部不能开发出来功能或者想向开源仓库提供帮助或者创意,就算是跨团队协作了,第三方既不是队友,也不是自己。怎么推送代码给你。
- 首先再创建一个号当第三方,登陆上去
- 这个空账号就是第三方,现在什么都没有,在搜索框里面 输入
仓库主人的昵称/仓库名
就能精准找到仓库,因为昵称是唯一的 - 找到仓库后,你需要把他仓库的东西 fork 叉一份到自己的仓库里面,所以就点右上角的 fork 按钮
- 就会创建一个仓库,进入仓库后,在仓库的名称路径下就能看见,写着 fork from 叉过来的仓库的地址
- 点击文件,进入在线编辑工具,做一个修改,写一个提交报文,点击提交
- 但是回头看自己的账号,就会发现仓库里面的文件没有变。第三方做的修改后,需要提交 pull request,由仓库主人审核后,再决定合并与否
- 创建 pull request
- 点击 pull request -> new pull request,就会生成一份请求报告
- 里面写着把自己的修改的分支提交到原仓库的哪个分支,点击 create pull request
- 弹出一份表单,就是叫你再修改一下提交日志信息,大的输入框是留言板。
- 再点击 create pull request,这个 pull request 就发出去了。发给原仓库主人
- 回到自己的账号上,就会在仓库里面看见 pull request 上面多了一个消息提示。
- 查看 pull request
- 点击进入 pull request,就能看见提交的日志信息和提交者的昵称
- 点击日志报文,进去后,就能看见留言板留的言和提交的内容
- 点击上面横幅的commits【或者直接点击留言板下面的日志信息】,就能看见第一次提交的报文信息,点进去里面就记载着提交时的报文和留言板的留言
- 如果你觉不错,回到conversion,底下有一个merge pull request ,合并拉取请求,或者里面还有合并到分支请求和重新分配分支请求定义分支信息,要不合并就别理他。
- 点击合并拉去请求后,再去查看,就能看见内容变成第三方修改的那一版
- 这个conversion 同时也是一个聊天室,你可以在里面和提交的作者聊天,两人都能看见
7、SSH 免密登录 GitHub
来到远程仓库界面,code 按钮的SSH 选项有警告不能用,说你的账号里面没有任何widows的SSH密钥,需要添加到帐号里。
-
首先,来到电脑的 用户->用户名 下的目录,在那里GitBash
-
然后
ssh-keygen -t rsa -C 描述内容
,在这个目录下生成 .ssh 密钥目录,命令中 ssh-keygen 是生成ssh目录的命令,-t 是指使用哪种算法,rsa 是一种加密算法协议 ,-C 是一种描述符,后面跟的一般是用户名。 -
输入命令后,按三下回车,就加密好了。
-
查看当前目录,就能看见 .ssh 目录
-
cd .ssh 进入目录,查看里面的内容,id_rsa 文件保存着私钥,id_rsa.pub 是公钥
-
在命令行中进入 .ssh 目录,cat id_rsa.pub 查看公钥内容,并复制
-
然后来到github头像->settings->SSH and GPG keys 里面,创建一个新的SSH公钥
-
起一个名称,然后把复制的公钥内容粘贴到下面的框子里。
-
确定后,出现
就是成了
-
最后在本地仓库做一些修改提交后,通过仓库的 SSH 地址进行pull和push操作,测试是否成功
-
pull 的时候问你要不要保存这个SSH连接,输入yes
-
如果中间出现了迷惑性问题就把命令再重新打一遍执行