Git 使用技巧【持续更新】

2022年04月13日 17:03 · 阅读(552) ·

开发环境

名称 版本
操作系统 Windows 10 X64
JDK JDK1.8(jdk-8u151-windows-x64)
IntelliJ IDEA IntelliJ IDEA 2021.2.1
Maven Maven 3.6.0
Git 2.26.2

Git 工具

工具 描述
TortoiseGit TortoiseGit 是基于 TortoiseSVN 的 Git 的 Windows Shell 界面。
它是开源的,可以完全使用免费软件构建
UGit 鹅厂自己的 Git GUI 功能全面,新手友好,而且一些特定场景下有优化
GitExtension Git Extensions 是 git 图形化客户端,用于控制 Git 资料库,
完美至支持 Windows 系统的资源管理器集成和 Visual Studio集成

查看当前项目 Git 地址

  1. git remote -v

合并分支-使用 TortoiseGit

1.基于当前分支 master 新建分支 ETMSV1.0Beta22
2.切换到分支 ETMSV1.0Beta22, 修改其中 RecepitTransServiceImpl.java 文件 exportReport 方法,添加注释

  1. public RecepitTransExcelDto exportReport(ReportManageConditionDto condition,
  2. int userId, String userName,
  3. String privilegeType, String language) throws TException {
  4. //ETMSV1.0Beta22

3.提交分支 ETMSV1.0Beta22
4.切换到 master
5.合并,从 ETMSV1.0Beta22

6.此时主分支的 RecepitTransServiceImpl.java 文件 exportReport 方法也已经变化

  1. public RecepitTransExcelDto exportReport(ReportManageConditionDto condition,
  2. int userId, String userName,
  3. String privilegeType, String language) throws TException {
  4. //ETMSV1.0Beta22

7.推送合并后的主分支到服务器

代码冲突解决

1.主分支的服务器现有 RecepitTransServiceImpl.java 文件 exportReport 方法

  1. public RecepitTransExcelDto exportReport(ReportManageConditionDto condition,
  2. int userId, String userName,
  3. String privilegeType, String language) throws TException {
  4. //ETMSV1.0Beta22 Server

2.主分支的本地 RecepitTransServiceImpl.java 文件 exportReport 方法

  1. public RecepitTransExcelDto exportReport(ReportManageConditionDto condition,
  2. int userId, String userName,
  3. String privilegeType, String language) throws TException {
  4. //ETMSV1.0Beta22 Local

3.提交本地代码到服务器,提示需要合并

选择合并

解决冲突

4.完成后提到到服务器即可。

error: Your local changes to the following files would be overwritten by merge:

问题描述

我想把分支 dev 合并到 dev-financing

分支 dev 目录结构为

  1. etms-base-common
  2. etms-base-contract
  3. etms-base-service
  4. etms-base-web

分支 dev-financing 目录结构为

  1. etms-base-common
  2. etms-base-contract
  3. etms-base-service
  4. etms-base-web
  5. etms-financing-common
  6. etms-financing-contract
  7. etms-financing-service
  8. etms-financing-web

按道理会合并共同部分的内容,但是报了一个下面的错误

  1. git.exe merge remotes/origin/dev
  2. error: Your local changes to the following files would be overwritten by merge:
  3. etms-financing-service/etms-financing-service.iml

很奇怪啊 dev 分支并没有文件 etms-financing-service/etms-financing-service.iml

解决办法,找到 etms-financing-service/etms-financing-service.iml 文件-右键-删除并添加有忽略列表

再次合并,合并成功

合并分支-使用 IDEA

接上一个问题

我想把分支 dev 合并到 dev-financing

分支 dev 目录结构为

  1. etms-base-common
  2. etms-base-contract
  3. etms-base-service
  4. etms-base-web

分支 dev-financing 目录结构为

  1. etms-base-common
  2. etms-base-contract
  3. etms-base-service
  4. etms-base-web
  5. etms-financing-common
  6. etms-financing-contract
  7. etms-financing-service
  8. etms-financing-web

我当前在 dev-financing 分支,本地并没有 dev 分支的内容。

使用 tortoisegit,合并 dev 分支到 dev-financing 分支,提示合并成功,但是实际上并没有进行合并。

原因是我本地没有拉取 dev 的代码。

下面使用 IDEA 进行合并。

方法一

● 拉取 dev-financing 分支

● 拉取 dev 分支

拉取后自动合并,解决冲突,合并完成,提交推送即可。

方法二

● 确保 devdev-financing 分支的内容都已经推送

● 切换到 dev-financing 分支

● 选择 dev 分支,将已选择合并到当前中

自动合并,解决冲突,合并完成,提交推送即可。