git的安装及针对码云的操作(二)
三、注册码云
使用GitHub时,国内的用户经常遇到的问题是访问速度太慢,有时候还会出现无法连接的情况(原因你懂的)。
如果我们希望体验Git飞一般的速度,可以使用国内的Git托管服务——码云(gitee.com)。
和GitHub相比,码云也提供免费的Git仓库。此外,还集成了代码质量检测、项目演示等功能。对于团队协作开发,码云还提供了项目管理、代码托管、文档管理的服务,5人以下小团队免费。
运行命令ssh-keygen -t rsa -C "你的邮箱"
,会有三次提示输入,直接回车即可。如果已经有SSH key,会提示是否覆盖。
在用户目录下找到 .ssh
目录,里面有一个id_rsa.pub
文件,保存的就是公钥。
登录码云,在SSH公钥文本框里粘贴id_rsa.pub
文件的内容:
执行命令ssh -T git@git.oschina.net
,若返回Welcome to Git@OSC
,则证明添加成功。
Git使用SSH连接第一次验证服务器的key时,需要你进行确认,此时输入yes回车即可,注意一定是yes
而不是y
。
-
在码云中新建项目
-
创建项目,输入项目名,选择项目语言。
-
复制远程项目仓库的地址:选择HTTPS,可以复制远程项目仓库的HTTPS地址,如
https://git.oschina.net/maoth/java-hebau.git
,选择SSH,则复制远程仓库的SSH地址。如git@git.oschina.net:maoth/java-hebau.git
六、远程同步
6.1 推送本地仓库的更新到远程仓库
-
文件提交到本地仓库后,可以执行
git push origin master
将本地仓库上传到远程仓库,默认情况下,origin
指的是本地仓库在远程仓库的版本,master
指的是本地仓库的master分支。第一次push的时候,可能需要输入在码云注册的用户名和密码。
-
查看码云项目页面,文件HelloWorld.java已经上传到服务器。
6.2 抓取远程仓库的更新到本地仓库
执行git clone
命令后,自动创建了本地的master
分支,用于跟踪远程仓库中的origin/master
分支。当远程仓库的内容更新后,可以通过命令git pull
或者 git pull origin master
, 将更新的数据抓取到本地仓库,合并到工作目录的当前分支。
执行git pull
命令时,本地做的提交和服务器上的提交可能有差异,导致合并冲突,此时,需进行冲突处理。具体参考如何处理代码冲突
7.关于init仓库远程同步存在的问题
对于克隆的远程仓库,其使用的基本流程如下:
- 克隆远程仓库
- 创建文件
- 添加(git add)
- 提交(git commit)
- 推送(git push)
如果没有从远程克隆仓库,则需要在本地通过git init
命令初始化仓库,在commit之后,不能直接进行远程推送(push),必须先建立本地仓库和远程仓库的关联。
运行git remote add origin 远程仓库的ssh地址
命令用于添加远程仓库
执行git push -u origin master
命令,加上-u参数,Git不但会把本地的master分支内容推送到远程仓库,还会把两者关联起来。
此时,提示push
失败,原因是远程仓库中有本地没有的文件,需要先pull
下来。执行pull
命令
依然报错,提示fatal: refusing to merge unrelated histories
,拒绝合并互不相关的项目,那么,我们在执行命令时需要添加参数,即git pull origin master --allow-unrelated-histories
。
执行命令后,会出现提交的提示信息:
这是VIM文本编辑器
操作命令:
进入到输入状态:按i键
从输入状态退出:Esc键
—— Shift+;键
—— wq!(保存并退出)或q!(不保存退出)
——Enter
出现pull
成功的信息
最后执行推送命令git push -u origin master
远程同步成功,到远程仓库查看项目,会发现文件HelloWorld.java已经同步到远程仓库。
以后在commit
后需要同步到远程仓库时,只要直接执行git push
命令就行了。
上面只是简单介绍了Git的使用,更为系统的学习可参考下列资料: