一、引言
都说不知道git的程序员不是好程序员,但是由于用的windows平台我是知道但一直没用过,这两天集中把廖雪峰的git博客看了一遍,自己总结了下==
二、远程仓库与本地仓库配置
1、安装git
实话实说,Windows是最烂的开发平台,如果不是开发Windows游戏或者在IE里调试页面,一般不推荐用Windows。不过,既然已经上了微软的贼船,也是有办法安装Git的。
Windows下要使用很多Linux/Unix的工具时,需要Cygwin这样的模拟环境,Git也一样。Cygwin的安装和配置都比较复杂,就不建议你折腾了。不过,有高人已经把模拟环境和Git都打包好了,名叫msysgit,只需要下载一个单独的exe安装程序,其他什么也不用装,绝对好用。
msysgit是Windows版的Git,从https://git-for-windows.github.io下载(网速慢的同学请移步国内镜像),然后按默认选项安装即可。
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
2、本地仓库配置
- 配置自己机器的名字和邮箱
$ git config --global user.name "xcy"
$ git config --global user.email "gis_xiechenyang@163.com"
- 生成ssh key(生成本地的唯一标识,用来远程仓库识别)
$ ssh-keygen -t rsa -C "gis_xiechenyang@163.com"
这个会在你指定的两个地方生成两个文件,后面用得着
3、远程仓库配置
远程仓库我们使用的是码云,之所以没用github,是因为github网速还有私有库要钱的问题。
- 登陆码云网站,找到设置,在ssh中添加步骤一中生成的.pub公钥文件内容,直接拷贝(添加这个的目的是给你的本地账户授权)
- 然后创建repository
三、基本操作
1、配置并克隆远程仓库到本地
- 找到ssh地址
- 克隆到本地仓库
$ git clone git@git.oschina.net:xcymorningsun/mygit.git
2、修改文件提交本地仓库,提交到远程仓库
- 修改文件,查看status
$ git status
- commit到本地
$ git add a.txt
$ git commit -m"a"
- push到远程master分支
$ git push origin master
3、创建分支dev,提交到远程仓库
checkout分支dev
$ git checkout -b dev
$ git branch
push到远程dev分支
$ git push origin dev
四、冲突解决
情景在线:远程仓库有master分支与dev分支,两个程序员a、b要开发所以想clone出dev分支,不幸的是他们都修改了同一个文件的相同位置,八阿哥了==
操作过程:
1、小伙伴a操作
- clone远程仓库,远程仓库克隆的时候不会分哪个分支的,默认都是clone master分支
$ git clone git@git.oschina.net:xcymorningsun/mygit.git
- 进入dev分支
$ git checkout -b dev origin/dev
- 资源管理器修改文件a位置,并使用上节中2的方法,将修改内容提交到远程仓库origin dev(上节2中提交的是origin master分支,注意区别)
2、小伙伴b操作
- 与上述步骤很类似,clone远程仓库,原厂仓库克隆的时候不会分哪个分支的,默认都是clone master分支
$ git clone git@git.oschina.net:xcymorningsun/mygit.git
- 进入dev分支
$ git checkout -b dev origin/dev
- 修改同一文件a位置,并使用上节中2的方法,将修改内容提交到远程仓库origin dev(上节2中提交的是origin master分支,注意区别)
- 然后问题出现了
3、冲突解决
- push到远程dev分支报错,git建议直接pull远程到本地,那就试试
$ git pull
- git pull也失败了,原因是没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置dev和origin/dev的链接
$ git branch --set-upstream dev origin/dev
- 这下pull远程仓库origin/dev到dev了,不过有冲突,与git merge中处理方法类似(直接到文件修改,会有提示哪里有冲突,然后直接修改,add-commit)
- 最后push到远程dev分支就ok
五、总结
- 无程序,不git
- git安装
- git远程仓库与本地配置
- 基本操作
- push到远程分支冲突解决