赞
踩
git是目前流行的分布式版本管理系统。它拥有两套版本库:本地库和远程库,在不进行合并和删除之类的操作时这两套版本库互不影响。也因此其近乎所有的操作都是本地执行,所以在断网的情况下任然可以提交代码,切换分支。git又使用了SHA-1哈希算法确保了在文件传输时变得不完整、磁盘损坏导致数据丢失时能立即察觉到。
Git的基本工作流程的示例图:
相关命令的作用:
(Eclipse从LUNA版本开始默认支持了GIT客户端)在Eclipse中安装Git插件教程:https://blog.csdn.net/qq_32786873/article/details/80917058
Eclipse中对于git的操作都在项目的右键菜单中的Team、Replace With、Compare With
中。
如果学习了Git,对于Team中的一些选项都能看名字知道其作用。下图标注了常用选项的功能:
下面是我学习过程中总结的一些操作。
1.选择工程→右键→Team→Share Project,打开如下页面:
2.勾选了复选框后进入页面转换成这样:
执行完上图的操作后,就完成了这个工程的本地库初始化。在这个工程的目录中就多了个隐藏的.git文件夹。
1.在Eclipse中,点击顶部菜单栏的Window–>preferences–>Team–>Git,进入如下页面:
2.点击add Entry按钮,然后在如下页面添加用户信息:
3.添加完成后,点击Apply按钮即完成了本地库签名的配置。
1.在Eclipse中,点击顶部菜单栏的Window–>preferences–>Team–>Git–>Label Decorations,就可以看到Git图标介绍:
Eclipse项目中的特定文件是为了管理我们创建的工程的文件,包括了.classpath
文件,.project
文件,以及.setting
目录下的文件。这些文件可以在Navigator视图下查看:
因为同一个团队中很难保证大家都使用相同的IDE工具。而IDE工具的版本不同时,相关工程的特定文件就有可能不同。如果将这些文件加入到版本控制中,就有可能需要花时间解决在合并时的冲突情况。
下面来设置git忽略Eclipse中的特定文件和target目录(这个目录下包含的是工程编译后的字节码文件)下的文件。
1.首先找到GitHub官网提供的默认的关于Java的配置文件https://github.com/github/gitignore/blob/master/Java.gitignore,然后复制这里的内容。
这里直接复制了过来:
# Compiled class file *.class # Log file *.log # BlueJ files *.ctxt # Mobile Tools for Java (J2ME) .mtj.tmp/ # Package Files # *.jar *.war *.nar *.ear *.zip *.tar.gz *.rar # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid*
2.然后在.gitconfig文件的目录(默认是~/.gitconfig)下,创建一个Java.gitignore
(这里的名字随意)文件,然后粘贴上面的内容,并添加以下几行。
.classpath
.project
.settings
target
3.编辑~/.gitconfig文件引入上面创建的文件,添加内容如下:
[core]
excludesfile = C:/Users/LENOVO/Java.gitignore
注意:这里路径中一定要使用“/”,不能使用“\”。
4.然后在Eclipse中打开Window–>preferences–>Team–>Git–>Configuration,查看key是否有core。
可以看到core中的excludesfile配置。此时重启Eclipse,就能看到上面配置的文件都被Git忽略了。
1.选择Windows–>Show View–>Other,搜索Git Staging。这里还可以选择打开Git Reflog等可视化界面。
点击Open即可打开如下视图,可以很方面的查看工作区和暂存区的文件情况,也可以快速执行提交和推送操作。
2.将工程添加到暂存区,右击工程名–>Team->add to index,此时工程的图标就变成这样:
3.提交处在暂存区的工程到本地库,右击工程名–>Team->commit(快捷键ctrl+#),跳出这个页面(Eclipse版本不同,提交页面不一样):
填写Commit Message后点击Commit按钮,即完成提交到本地库的操作。
其实我们也可以直接执行commit操作,不需要先添加工程到暂存区(index)。
1.首先在GitHub中创建有一个仓库,并复制仓库地址。
2.在Eclipse中,右击工程名–>Team–>Remote–>Push,打开如下页面并填写项目地址和GitHub的账号和密码。
3.点击Next按钮,进入下面的页面:
4.然后点Next,在这里确定推送的结果和具体信息。
最后点击Finish即完成了推送操作。
下面直接在Eclipse中克隆GitHub中的工程到Eclipse工作区中。
1.顶部导航栏File-->import-->Git-->Projects from git
,点击Next进入下一步
2.选择Git仓库类型:本地库或远程库。这里选择Clone URI。点击Next进入下一步。
3.填写远程仓库的URI,然后点击Next,选择分支。
4.选择完分支后,然后就选择本地保存的位置(建议保存在Eclipse的工作目录下),点击Next进入下一步。
5.选择如何导入这个工程,选择Import as general project
。
这里的Import existing Eclipse Projects
,Eclipse会扫描项目是否有.project文件。当要导入的项目具有Eclipse工程的特定文件(一个完整的Eclipse项目)时可以选择。
而import using the New Project wizard
,选择该选项代表项目还没被eclipse初始化,选择后点击finish会打开new Project向导,这个向导就和eclipse新创建项目步骤一样。
最后我们选择的Import as general project
就是将该项目作为一个普通的项目导入。
最后确认项目名称,然后点击Finish后就完成了导入。项目结构如下:
因为导入的项目不具有运行环境,当我们需要二次开发时,就需要将该项目转换为Maven项目。
右击选中项目名–>Configure–>Convert to Maven Project
这样项目就变为由Maven管理的项目了
当我们合并分支时,被合并的分支不是在接受合并的分支最新版本上修改(接受合并的分支有了新的提交),就会产生冲突需要我们手动解决,然后再合并。
另外当我们团队协作时,不是在远程库中最新版本上修改时(团队有人更新了远程库),那么提交时就会出现冲突的情况。此时无法推送,需要我们先pull下来,然后查看并修改冲突的文件。
冲突的文件会用 这个符号进行标识,而冲突的地方会有特殊符号<
,=
,>
,标识,提示哪些是远程库上的修改,哪些是自己的修改,像这样:
<<<<<<< HEAD
System.out.println("right");
=======
System.out.println("left");
>>>>>>> branch 'master' of https://github.com/JustCoding-Hai/testGit.git
}
当我们冲突的地方比较多时,就可以借助Merge Tool来对比查看。
右击选中冲突的文件->Team->Merge Tool,打开这样的页面:
在这个页面可以很方便地对比着看冲突的内容,工具栏也提供了许多功能,我们就在左边修改文件来解决冲突。最后保存后上面的特殊符号会被自动删除。
然后我们添加到暂存区(add to index)
再提交到本地库,最后提交到远程库。
Git工作流指在项目开发过程中使用Git的方式。Git工作流包括有集中式工作流、GitFlow工作流和Forking工作流。
我们最常使用的是GitFlow工作流,GitFlow工作流是在项目开发过程通过为功能开发、发布准备和维护设立了独立的分支,让发布迭代过程更流畅。
Git工作流中的分支种类可以包括以下几个类别:
GitFlow工作流示例图:
现在操作TestGit和testGit2项目模拟团队协作时,一个成员添加了分支,另一成员拉取下来并进行合并。
1.创建分支
右击TestGit项目名–》Team–》Switch to–》New Branch,然后填写分支名hot_fix。
此时就转换为hot_fix分支了。
然后对Banana类进行修改,添加一行代码。
public class Banana {
public static void main(String[] args) {
System.out.println("this is right");
System.out.println("Edit By branch hot_fix");
}
}
提交到本地库,再推送该分支到远程库。
2.切换分支并审查代码
这时团队的另一个成员操作的testGit2项目,就需要pull远程库下来,然后选择:
在这个页面选择分支
然后选择Check out as New Local Branch
这样就完成了获取远程库中的分支并切换。我们确定这个分支的内容没有错误后就可以进行合并操作了。
3.合并分支
首先切换回master分支
然后执行合并操作
选择要合并的分支。
点击Merge按钮即完成合并。
4.删除分支
如果是删除本地分支,选择Team–》Advanced --》delete branch,选中要删除的分支,然后点击OK。
如果要本地操作删除远程分支,就选择Team–>Remote–>Push,在弹出的界面中点击Next,
在上面页面下拉选择要删除的分支,点击Add Spec按钮,点击finish完成。
1.版本切换,选中项目名右键,Replace With–>Commit,然后选择一个commit记录
2.撤销修改,撤销文件的修改,选中文件右键,Replace With–>Head Revision。撤销项目的修改,就选中项目名右键执行相同的操作。
使用Git应该保持良好的习惯,即每次开发之前先更新,经常提交,不要一次提交很多文件。这样基本上的简单使用就不会出现问题。
最后,上面的相关操作是我看视频教程总结的,因为还没有实际使用经验,所以许多Git技术点没有涉及到。需要详细学习的话可以看一些官方文档哦:
Git学习:Git-Book
EGit插件的使用:EGit/UserGuide
拓展:IntelliJ IDEA下的使用git
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。