Git使用文档

本文档介绍了git安装、SoureTree工具使用、推送、更新、冲突解决,一些常用命令

总之,这个文档不是最全的,但是都是我工作中天天用到的东西,以后也会更新。

我用的git云是OSCHINA

我使用git一个主要流程:

接到需求->从线上的master分支拉取一个新的分支->开发->开发完毕后更新当前分支->提交推送当前分支

一种极端的情况:

一个月前我开发A模块,这个模块已经上线,一个月后我在开发B模块,B模块是在原A模块代码基础上改的,此时B模块未开发完,不可以提交,线上A模块出现BUG,立刻就要修改,这时需要使用stash命令,先把当前B模块的所有改动储藏,让当前分支变为修改前的代码,解决Bug后,再还原B模块未开发完的代码。

一、下载git

下载git

然后一直下一步下一步安装至结束

二、安装MyEclipse插件-Egit

Egit下载

Egit版本要对应myeclipse中的eclipse版本下载egit

查看eclipse版本号:myeclipse安装路径下用记事本打开 .eclipseproduct文件

下载完后放到MyEclipse 10dropins下,重启工具,

在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版本库中已存在了某文件,曾经前push提交过该文件。

.gitignore文件只对还没有加入版本管理的文件起作用,如果之前已经用git把这些文件纳入了版本库,就不起作用了

需要在git库中删除该文件,并更新。

如果上面设置无效,在git命令行下执行

 git rm -r --cached .
 git add .
 git commit -m 'update .gitignore'

五、新建项目并推送到git云

1.首先在云端创建一个项目,得到一个git地址:git@gitee.com:****/***.git

2.打开SoureTree,导入密钥

3.选择“克隆/新建”

4.选择‘创建新仓库’

目标路径:本地git仓库存放位置,个人理解这个仓库就是Myeclipse的workspace,以后的项目都在这里

名字:一般不用管,自动生成,可以根据自己习惯修改

5.点击创建后本地仓库就创建完毕,但需要和云端仓库同步,在选中当前仓库下(图一),使用ctrl+shift+, 

打开项目设置(图二),在弹出的页面中‘添加’(图三)

远端名称:自定义起名

URL/路径:上面创建的git@gitee.com:****/***.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的文件,更多操作如下

stash命令详解

十三、SourceTree安装

各种下一步下一步,安装完后需要翻墙一下,登录帐号,这个就登录一次就够了

当然还有一种免翻墙的办法,将附件中替换安装目录下的同名文件即可

跳过登陆替换文件

有遗漏的地方请提示,谢谢。

原文地址:https://www.cnblogs.com/rb2010/p/8117070.html