Git的使用(3) —— 远程版本库的操作(GitHub)
1. 配置SSH
(1) GitHub
登陆GitHub后,点击右上角头像,选择 Setting 。

在左面栏目中选择"SSH and GPG keys"。
打开生成的SSH公钥文件 id_rsa.pub ,不知道怎么配的看:Git的安装与配置 在最下面有教。
点击右上角绿色按钮"New SSH key",在Title中给key起名,在Key中填写从公钥中复制的所有字符,然后点击"Add SSH key",就成功添加了一个key。

(2) 码云Gitee
码云的操作跟GitHub操作一样,只不过全是中文操作,更加简单。
2. 将本地版本库推送到远程版本库
还是最推荐使用TortoiseGit工具+SSH方式推送,毕竟简单许多。
其实推送的原理就是将本地版本库中有的文件去替换掉远程版本库中没有的文件。这么说不是很准确,但也差不多。
(1) 使用SSH方式
使用SSH方式,需要预先配置SSH,如何配置在上面说明。
1) TortoiseGit推送
前提是本地版本库中已经有文件。并且配置好TortoiseGit中的远端。
如何配置TortoiseGit中的远端,看:TortoiseGit的安装与配置
右键工作区空白位置,选择 Git 同步。
选择本地分支、远端分支、配置好的远端URL,点击推送即可把本地版本库推送到远端版本库。

推送成功后,消息框会提示成功推送。因为演示推送的是GitHub,所以可以上GitHub上看一看。

2) 命令行推送
右键工作区空白处,选择"Git Bash Here"。
git remote add origin(远程版本库别名,任意命名即可) SSH连接
git push -u origin(远程版本库别名) master(远程版本库分支)

推送成功。
(2) 使用HTTP方式
使用HTTP因为没有加密通信连接,在本地版本库和远程版本库操作时都需要输入用户名和密码。但是可以在Windows的凭证管理器中设置Windows凭证,以后Git就可以自动调用凭证管理器中的凭证来自动登录。
1) TortoiseGit推送
右键工作区空白位置,选择 Git 同步。
选择本地分支、远端分支、配置好的远端URL,点击推送。

此时弹出GitHub的登陆窗口,输入用户名和密码。

然后就成功推送到了远程版本库。
2) 命令行推送
跟使用SSH推送一样的语句,只是也会弹出GitHub的登陆请求,输入用户名和密码后就可以推送到远程版本库了。
3. 将远程版本库克隆到本地版本库
因为GitHub上的开源项目都是开源的,可以随意下载,所以HTTP方式无需输入口令就可以将项目克隆到本地,SSH不管是推送还是克隆都需要配置公钥和私钥。但如果是私有项目或者私人搭建的Git远程版本库,则可能根据安全等级要求输入口令。
(1) 使用SSH
1) TortoiseGit方式
在空白文件夹内右击,选择"Git 克隆"。

填写URL,选择目录,点击确定。在消息栏中提示成功即可。
2) 命令行方式
在空白文件夹内右击,选择"Git Bash Here"。
git clone 远程版本库URL

克隆完成。
(2) 使用HTTP
操作和使用SSH一样,只是URL是非加密的HTTP形式。
4. 从远程版本库拉取更新到本地版本库
因为一个远程版本库就是为了给多个人使用的。为了得到别人写的代码,总不能删除整个本地版本库重新克隆一个,因为里面可能有自己还未推送的添加/修改操作,所以这里就用到了拉取(pull)操作。
拉取(pull)是获取(fetch)+合并(merge)的结合。获取操作就是从远程版本库中得到远程版本库指定分支最新的文件/操作,合并操作就是将获得的新一个节点中的文件/操作和本地版本库的文件进行合并更新,然后在当前分支产生新的节点。拉取命令就是一下执行这两个操作。
这里的操作统统是基于SSH方式的,如果用HTTP方式,则中间只多出了输入口令的操作。
右击工作区空白处,在TortoiseGit中选择"拉取"。
选择远程版本库和远程版本库的分支后,点击确定,就可以将指定分支的最新文件更新到本地版本库。

5. 从远程版本库拉取产生的冲突
Git有一套精确的判断方法,将远程版本库中的文件和本地版本库中的文件进行对比后更新。但是如果两个人同时修改一个文件,一个人将文件推送到了远程版本库,另一个将自己修改后的同一个文件提交到本地版本库再拉取更新后,可能就会产生冲突。因为两个人同时对一个文件做出了修改,Git无法判断到底应该保留哪些代码,就会报错提示当前拉取方。拉取方解决冲突后才能将本地版本库推送到远程版本库。
目前有两种冲突:
(1) 推送冲突:本地的文件版本比远程版本库中的要早,不是在最新的文件上所做的修改,无法推送成功。
(2) 拉取冲突:本地的文件的内容修改后和远程版本库中的文件内容不一致,拉取时无法自动判断合并。
第一种只会提示冲突,并不会产生冲突文件,也不会将本地版本库中的文件推送到远程版本库;但是第二种冲突会在冲突文件上产生冲突代码,需要手动解决。

产生冲突的文件图标左下角出现黄色警示标志,意为产生冲突。
Git会将两个版本的差异写明,然后需要手动排除冲突。右键冲突文件,在TortoiseGit中选择"编辑冲突",在文本编辑器中手动解决冲突。

解决冲突后,右击冲突文件,在TortoiseGit中选择"解决冲突",将文件标记为已解决冲突。文件图标左下角变成红色叹号,等待提交文件到本地版本库中。在提交到本地版本库的过程里,会首先提醒文件里面有一个冲突文件,需要确认是否将这个文件提交到本地版本库。(不得不说这个汉化用的怕不是Google Translation)

而且会自动在日志里填写出现冲突的文件,需要手动将这些警示信息替换成别的提示信息。

提交后,就算完成解决冲突。
Git的使用(3) —— 远程版本库的操作(GitHub)的更多相关文章
- Git的使用(2) —— 本地版本库的操作
1. 向本地版本库中添加文件 注意:.git文件夹是本地版本库,包含.git文件夹的目录叫工作目录,要往本地版本库中添加文件,就必须将文件放在工作目录中. (1) 把文件添加到工作目录中. (2) 右 ...
- Git学习笔记---安装与初始化 连接远程版本库
1.Git的安装 sudo apt-get install git 用的是linux(ubuntu)系统,安装非常简单,上面一条命令就够了. 2.初次运行的配置 Git 提供了一个叫做 git con ...
- 关于git远程版本库的一些问题之解决
Part1:CentOS6.5免密码登录 修改/etc/ssh/sshd_config RSAAuthentication yesPubkeyAuthentication yesAuthorizedK ...
- GIT使用—创建并使用远程版本库
远程版本库 (1)创建一个裸版本库 [root@localhost tmp]# git init fluff2 Initialized empty Git repository in /tmp/flu ...
- git 创建远程版本库(亲测有效)
一.github远程版本库 1.创建SSH Key(windows) ssh-keygen -t rsa -C "youremail@example.com" 2.连接版本 ...
- Git远程版本库
目前为止,所有的Git操作都是在一个本地版本库中.现在是时候来体验Git分布式的特性了. 说到远程版本库,大家最为熟悉的就是GitHub了,它实际上就相当于一个远程版本库,托管着所有的本地版本库的提交 ...
- Git版本控制工具(一)----git的安装及创建版本库
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- GitHub学习三-远程版本库更新与提交
1.远程版本库更新 一般来说,将本地与远程相关联之后,首先将数据从远程更新下来再上传比较好. 输入 git pull origin master 如果新建版本库的话勾选了初始化包含readme.md, ...
- Git 学习(二)版本库创建
Git 版本库创建 什么是版本库(repository)? 可理解为文件仓库.由Git管理每个文件的新增.修改及删除,但这个仓库可以追溯历史.可还原至任意历史节点. 版本库创建 创建一个版本库非常简单 ...
随机推荐
- 各种GAN的学习和总结
GAN: https://www.cnblogs.com/kk17/p/10046884.html WGAN: https://www.cnblogs.com/Allen-rg/p/10305125. ...
- xadmin安装
1 安装满足django2的版本 pip3 install https://codeload.github.com/sshwsfc/xadmin/zip/django2 2 urls.py里面增加路由 ...
- 小米5s plus刷机
1. 先去这里解锁 .http://www.miui.com/unlock/done.html 2.再去开发者选项里面,将手机账号和解锁手机绑定. 3.使用解锁工具解锁 4.下载安装奇兔刷机 http ...
- 爬虫之cookie与代理
一, 基于requests模块的cookie操作 引言:有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达 ...
- [daily] ssh通过私钥导出公钥
在使用key方式登录ssh服务的时候,我们知道ssh key是使用公钥ssh-keygen工具生成的. 有时候,我们只保存了私钥,但是并没有保存公钥.这个时候,可以使用如下方法, 从私钥中将公钥导 ...
- swagger是什么OpenAPI是什么
wiki: https://en.wikipedia.org/wiki/OpenAPI_Specification 官网: https://swagger.io/specification/
- MongonDB 知识
配置 vi mongodb.conf dbpath=/usr/local/mongodb/data/ logpath=/usr/local/mongodb/data/mongodb.log port ...
- 生成1~n的排列(模板),生成可重集的排列(对应紫书P184, P185)
生成1~n的排列: #include<iostream> using namespace std; void print_permutation(int n, int *A, int cu ...
- js实现点击按钮时显示弹框,点击按钮及弹框以外的区域时隐藏弹框
转自https://blog.csdn.net/yimawujiang/article/details/86496936 问题:js实现点击按钮时显示弹框,点击按钮及弹框以外的区域时隐藏弹框? 方案一 ...
- Mongodb的安装--简单快速
由于需要在服务器安装mongodb,所以就对Mongodb的安装进行了了研究,在了解安装过程之前,先了解一下Mongodb,Mongodb是什么? 是什么? MongDB是结余关系数据库和非关系数据库 ...