前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开发中Git问题小结

开发中Git问题小结

作者头像
麦克劳林
发布2018-09-11 16:45:25
5230
发布2018-09-11 16:45:25
举报

1 Git的.gitignore配置

一般来说每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中心。实际项目中,有很多文件都不需要版本管理的,比如*.class、.classpath、.project等。.gitignore文件的内容是一些规则,Git会根据这些规则来判断是否将文件添加到版本控制中。 下面我们看看常用的规则:

  1. /target/ 过滤整个文件夹
  2. *.class 过滤所有.class文件
  3. .classpath 过滤某个具体文件

.gitignore文件中还可以指定要将哪些文件添加到版本库中,唯一的区别就是规则开头多了一个感叹号。

  1. !*.java .gitignore文件的配置语法及过滤规则,有兴趣的的话自己可以深入研究下,这里不具体展开。 注意:一定要养成在项目开始就创建.gitignore文件的习惯,如果不慎在创建.gitignore文件之前就push了项目,处理起来会比较麻烦。

2 分支管理策略

2.1主分支Master

首先,代码库应该有一个、且仅有一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布。

image.png

Git主分支的名字默认叫做Master。它是自动建立的,版本库初始化以后,默认就是在主分支上进行开发。

2.2 开发分支Develop

主分支只用来发布重大版本,日常开发应该在另一条分支上完成。我们把开发用的分支,叫做Develop。如果想正式对外发布,就在Master分支上,对Develop分支进行“合并”(merge)。

image.png

2.3 临时性分支

前面讲到版本库的两条主要分支:Master和Develop。前者用于正式发布,后者用于日常开发。其实,常设分支只需要这两条就够了,不需要其他了。 但是,除了常设分支以外,还有一些临时性分支,用于应对一些特定目的的版本开发。临时性分支主要有三种:

功能(feature)分支 预发布(release)分支 修补bug(fixbug)分支

这三种分支都属于临时性需要,使用完以后,应该删除,使得代码库的常设分支始终只有Master和Develop。

3 Git开发流程

3.1 从远程仓库克隆

任何开发者都不会对源仓库进行直接的操作,源仓库建立好后,每个开发者都需要做的事情就是把源仓库 “复制”一份到本地,作为自己日常开发的仓库。

git clone url

3.2 查看远程分支

git ls-remote

3.3 创建本地开发分支

所有开发者在开发前都需要基于远程develop分支创建一个本地develop分支。

 git branch local_develop origin/develop

切换分支,现在开发者就可以在local_develop分支上开始开发、提交commit,贡献自己的代码。

git checkout local_develop
git status 时刻掌握仓库当前的状态
git add <file>
git commit –a –m “”

当然,你还可以创建自己的特性分支,在特性分支上进行开发工作

git checkout –b feature_branch
git add <file> 添加文件
git commit –a –m “” 提交
git checkout local_develop 切回到local_develop分支
git merge feaure-branch 将特性分支合并到local_develop分支
git branch –d feaure-branch 删除特性分支

无论你通过哪种方式开发,现在本地仓库的local_develop上就是开发者最新的修改,只需要把在本地分支上的修改推送到远程分支,开发者就算贡献了自己的第一次提交。

git push origin local_develop:develop

3.4 合并分支

所有开发者的提交都会在远程develop分支中汇总,当develop中的代码经过不断的测试,逐渐趋于稳定了,可以把develop分支合并到master分支中,同时添加一个新的版本号。 任何人都不应该向master直接进行无意义的合并,正常情况下,master只接受develop的合并。

git checkout develop
git fetch origin/develop
git checkout master
git merge develop
git push origin master:master

3.5 解决冲突

在多人开发的情况下,冲突在所难免。如何快速准确的解决冲突是每个开发人员必须掌握的技能。 1、直接编辑冲突文件 冲突产生后,文件系统中冲突了的文件(这里是test.txt)里面的内容会显示为类似下面这样:

image.png

上图中:冲突标记<<<<<<<(7个<)与=======之间的内容是我的修改,=======与>>>>>>>之间的内容是别人的修改。 此时,还没有任何其它垃圾文件产生。 最简单的编辑冲突的办法,就是直接编辑冲突了的文件(test.txt),把冲突标记删掉,把冲突解决正确。 2、利用图形界面工具解决冲突 使用git自带的工具查看差异和合并差异十分不方便, 如果要解决的冲突很多,且比较复杂,图形界面的冲突解决工具就显得很重要了。 执行git mergetool/git difftool用预先配置的Beyond Compare工具解决冲突。git mergetool/git difftool的具体配置方法可在网上搜到很多参考资料,这里不详细讲解。

Beyond Compare

资料推荐

掌握Git基本原理、开发流程及Git命令是每个开发者的必备技能,这里推荐一些资料供大家学习参考。 《Pro Git》 《Git-Book》 《Git版本控制管理》

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.06.12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 Git的.gitignore配置
  • 2 分支管理策略
    • 2.1主分支Master
      • 2.2 开发分支Develop
        • 2.3 临时性分支
        • 3 Git开发流程
          • 3.1 从远程仓库克隆
            • 3.2 查看远程分支
              • 3.3 创建本地开发分支
                • 3.4 合并分支
                  • 3.5 解决冲突
                  • 资料推荐
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档