1. 简介
最近的项目开发环境我换到实验室的机器上了,毕竟是台式机,速度杠杠的。于是出现了一个问题,台式机上面的代码我笔记上的代码同步的问题。于是想到了Git这个强大的工具。关于git的简介我就不说了,网上一大堆。直接上干货。
2. 环境
1.我的系统:Windows7
2.git版本:2.9.2
由于我的git版本是最新版,后面我出现的坑就是最新版本的问题。
3.托管环境:开源中国的码云
3. 使用步骤
1.在码云上面创建一个项目(repository)
2.在Windows下安装git,并且在我的项目下create一个repository。
3.创建一个key(如果本地没有),然后将公钥添加到码云上。
4.通过git bash进入repository目录下
5.首先把所有的文件添加到 stage域中,类似于缓存。
$git add -A
表示添加当前目录下的所有文件到stage域中
6.然后commit。
$git commit -m “备注”
表示提交所有文件到本地仓库中,必须加上-m 和备注。
7. 这个时候如果需要和码云上的远程仓库同步,必须先添加remote。要查看当前配置有哪些远程仓库,可以用命令:
$git remote
执行时加上 -v 参数,你还可以看到每个别名的实际链接地址。
$git remote -v
下面我来添加远程库:格式是:
$git remote add [shortname] [url
]
我把我的码云上面的项目purplecollar远程库添加到本地仓库:
$git remote add origin git@git.oschina.NET:louyuting/purplecollar.git
8.这里也就是我出错的地方了:我们把我们本地仓库的项目上传到git前,由于码云仓库的内容可能有别人提交过了新内容,所以我们必须要先同步远程仓库到本地即 pull操作。但是我pull时报错了:
fatal: refusing to merge unrelated histories
我后来在overstackflow上面找到原因,
链接如下:http://stackoverflow.com/questions/37937984/git-refusing-to-merge-unrelated-histories
我们必须添加一个可选项
–allow-unrelated-histories
才行,这个问题在2.9.0之后的版本才出现的,以前的版本可以正常工作。所以最后我的命令是:
$git pull origin master –allow-unrelated-histories
把远程的origin仓库的master分支同步到本地,命令执行后后面还要输入备注。这时远程仓库同步到本地就成功了。
9.再就是直接push推送本地项目到远程仓库分支了。格式:
$ git push <远程主机名> <本地分支名>:<远程分支名>
下面是我的命令:
$git push origin master:master
提交成功。