本文档介绍了git安装、SoureTree工具使用、推送、更新、冲突解决,一些常用命令
总之,这个文档不是最全的,但是都是我工作中天天用到的东西,以后也会更新。
我用的git云是OSCHINA
我使用git一个主要流程:
接到需求->从线上的master分支拉取一个新的分支->开发->开发完毕后更新当前分支->提交推送当前分支
一种极端的情况:
一个月前我开发A模块,这个模块已经上线,一个月后我在开发B模块,B模块是在原A模块代码基础上改的,此时B模块未开发完,不可以提交,线上A模块出现BUG,立刻就要修改,这时需要使用stash命令,先把当前B模块的所有改动储藏,让当前分支变为修改前的代码,解决Bug后,再还原B模块未开发完的代码。
一、下载git
然后一直下一步下一步安装至结束
二、安装MyEclipse插件-Egit
Egit版本要对应myeclipse中的eclipse版本下载egit
查看eclipse版本号:myeclipse安装路径下用记事本打开 .eclipseproduct文件
下载完后放到MyEclipse 10\\dropins下,重启工具,
在window->preferrence->team下有git ,则表明安装成功
我只用egit解决冲突,所以到此安装完毕
三、创建git密钥
方式一:SoureTree生成(我在用这种方式)
打开SoureTree,选择
在弹出的窗口中选择‘Generate’然后晃动鼠标生成,生成后选择‘Save Private Key’ 保存密钥文件,千万别丢失,把生成的密钥添加到云端中,每次使用SoureTree都要添加这个密钥,添加方式,桌面右下角-Pageant...的一个程序,Add Key即可
方式二:MyEclipse生成(就学习git的时候了解过)
在Myeclipse - window - preferences 搜 SSH 会出现 ssh2
在右侧点Key Management → generate RSA Key... → apply → save private key...,然后保存添加到云端git仓库
四、指定文件不被git管理
项目中有些文件是无需提交的,比如WEB-INF->classes文件,不管它的话git老提示小箭头,用以下方法能解决
打开Navigator窗口,在项目根目录中添加(如果有就直接用).gitignore文件,将需要排除控制的目录写入.gitignore文件中,这样就可以指定排除监控某些文件
如果上面设置无效,在git命令行下执行
git rm -r --cached . git add . git commit -m ‘update .gitignore‘
五、新建项目并推送到git云
1.首先在云端创建一个项目,得到一个git地址:[email protected]:****/***.git
2.打开SoureTree,导入密钥
3.选择“克隆/新建”
4.选择‘创建新仓库’
目标路径:本地git仓库存放位置,个人理解这个仓库就是Myeclipse的workspace,以后的项目都在这里
名字:一般不用管,自动生成,可以根据自己习惯修改
5.点击创建后本地仓库就创建完毕,但需要和云端仓库同步,在选中当前仓库下(图一),使用ctrl+shift+,
打开项目设置(图二),在弹出的页面中‘添加’(图三)
远端名称:自定义起名
URL/路径:上面创建的[email protected]:****/***.git路径
两次确定后,即可下载远端分支(图四图五),注:“gittest”是我起的“远端名称”。
图一↑
图二↑
图三↑
图四↑
图五↑
6.到此为止,本地仓库已经创建,已经跟踪云端仓库,现在再向本地仓库中放任何文件,SoureTree都会改变状态,最后一步,创建项目,和创建一般的java项目一样,只不过在选择项目存放路径时,选择本地的git仓库就好了,创建完成后,Egit会自动对刚创建的项目进行状态跟踪。
六、导入项目(前提:Git云上有java项目)
导入项目个人觉得最常用的有两种方式
1.SoureTree(我在用这个方式)
①打开工具,导入密钥
②选择“克隆/新建”
③在“源路径/URL”中输入云端git地址,然后选择存放路径,选好后点“克隆”
④在MyEclipse中导入刚刚克隆的项目即可,Egit会自动跟踪状态改变
2.Egit(学习时了解过)
打开myeclipse中git仓库页面,选择clone .....
输入git云端链接,选择要克隆的分支,选择本地git仓库地址,提交到本地仓库即可
七、指定分支之间的对比
例如,当前在A分支下,我想看看A分钟和B分支到底有哪些改动
在项目上右键team-Advanced-Synchronize选择和哪个分支同步对比
八、创建分支
不习惯用命令,使用SourceTree创建
九、提交分支
不习惯用命令,使用SourceTree提交,还可使用EGIT和命令,本例说明SourceTree提交
改动文件后,在工具中会提示哪些文件改动了(图一),右键一个或多个文件,选择添加(图二),点击右上角提交,在最下方输入本次提交的备注,提交后工具‘推送’按钮会出现数字,数字标识当前分支超前了云端分支多少个版本
图一↑
图二↑
十、更新分支
云端版本有更新时,SourceTree中“拉取”会有数字,数字代表云端分支版本领先当前分支几个版本,点击拉取或者使用命令 git pull
当然本地如果有未暂存的文件,是无法拉取的,所以拉取前,先执行 git status -u储藏起来,更新完了再把储藏的还原(还原使用git stash pop stash{X},X代表索引,使用git stash list查看,确定到底要恢复哪个储藏的内容),这样有可能出现冲突,看下面
十一、冲突
还原储藏内容,会发生三种可能
1.无冲突
2.有冲突,但git自动合并成功,冲突解决
3.有冲突,git无法自动合并,比如我修改了A文件的第10行,另外一个人也修改了A文件的第10行
这时,需要使用Egit解决冲突,回到MyEclipse,在冲突文件上右键team->Merge Tool 选择冲突解决工具,我喜欢用第二个,完成后team->Add to Index后就可以提交了
十二、Stash储藏
git stash -u :未add的新文件也可隐藏,不加u只隐藏add的文件,更多操作如下
十三、SourceTree安装
各种下一步下一步,安装完后需要FQ一下,登录帐号,这个就登录一次就够了
当然还有一种免FQ的办法,将附件中替换安装目录下的同名文件即可
有遗漏的地方请提示,谢谢。