安装使用Beyond Compare工具,解决Git冲突

安装使用Beyond Compare工具,解决Git冲突

1,下载BC(官网地址: http://www.scootersoftware.com/download.php )

安装,记住.exe执行文件的路径;

2,配置.gitconfig文件

.gitconfig是配置的主要文件,它一般在C:\Users\{用户名}目录中,如果没有,可以通过以下两步创建:

# 1 打开命令行工具

git 安装后出现: Git GUI Here  与  Git Bash Here

git   下载官网: https://git-scm.com/

也可以配合git 上传代码 到 码云/GitHub + TortoiseGit使用   

https://blog.youkuaiyun.com/gaokcl/article/details/80997584

# 2 执行设置用户名或者设置邮箱的指令。

   git config --global user.name "输入你的github用户名"
   git config --global user.email "在这里输入你的github注册邮箱"

3,设置别名 (如果不使用别名,可忽略本部分)

打开.gitconfig文件,把以下内容拷贝到文件中,完成指令别名的配置:

  [alias]
  st = status
  ci = commit
  co = checkout
  br = branch
  df = diff
  dft = difftool
  dfs = diff --staged
  dfts = difftool --staged
  mr = merge
  mrt = mergetool
  last = log -1 HEAD
  ls = log --oneline --graph --all --decorate
  lg = log --oneline --graph --all --decorate --pretty=format:"%h%x20%Cgreen%d%x20%Cred%an%x20%C(yellow)%ad%x20%Creset%s" --full-history --date=short
  rb = rebase -i
  cp = cherry-pick

4,配置BC

 打开.gitconfig文件,把以下内容拷贝到文件中,完成Beyond Compare的配置:
 注意:黄色部分是BC的安装路径,需要根据你的实际情况进行修改
    [diff]
    tool = bc4
    [difftool]
    prompt = true
    [difftool "bc4"]
    cmd = \"D:/Program Files/Beyond Compare 4/bcomp.exe\" "$(cygpath -w $LOCAL)" "$REMOTE"
    [merge]
    tool = bc4
    [mergetool]
    prompt = true
    [mergetool "bc4"]
    #trustExitCode = true
    cmd = \"D:/Program Files/Beyond Compare 4/bcomp.exe\" "$LOCAL" "$REMOTE" "$BASE" "$MERGED"

5, 使用Beyond Compare

 比较
 自带的差异比较效果:
   

 使用difftool指令调用Beyond Compare的比较效果


 当然difftool也可以使用指令别名:

 解决合并冲突:

我们在dev的a.txt文件中添加“dev”内容,在master分支上添加“master”内容,
然后用master分支合并dev。

自带的差异比较效果:

 

 使用difftool指令调用Beyond Compare的比较效果

当然difftool也可以使用指令别名:

解决合并冲突

  我们在dev的a.txt文件中添加“dev”内容,在master分支上添加“master”内容,然后用master分支合并dev。

使用mergetool指令调用Beyond Compare合并冲突:

 6,使用mergetool指令调用Beyond Compare合并冲突:   

处理冲突策略: 由上图可以看出,左边是当前分支的版本,右边的是需要合并的分支的版本,中间的是相同部分的版本,处理冲突的策略大概有以下几种:

# 1  当前分支版本替换合并分支版本,点击绿色的箭头。
# 2  合并分支版本替换当前分支版本,点击粉色的箭头。
# 3  同时需要两个版本的内容,点击绿色或粉色的箭头,然后把另外的分支的内容拷贝!!!到下方的文本编辑框。
# 4  只要相同部分的内容,什么都不干。
# 5  其他。

最后,点击红色的感叹号,表示已解决冲突。我这里选择 【#3】的策略:

 
关闭Beyond Compare,完成合并操作。

最后,点击红色的感叹号,表示已解决冲突。我这里选择 【#3】的策略

关闭Beyond Compare,完成合并操作。

注意:软件安装序列号:

Wv1nPlXAywBDCdhxFc9QOVv9TBcQHLAXBQUAKTh3ie4fqSEOnWrPsnVkF
yt0wAkJHweoExRJWWVwwCniKNROSdJzJXE9YVapYW7f+tRRXRFI4yn4Nj
jZ0RiiqGRCTVzwCoWUcXB-eiFWRBY9JpSsCNkWIxL5KsRCo442djHhTZE

如果序列号不可用说明已禁,支持正版吧。

   

3,解决冲突 Windows10 mergetool


# 解决冲突:
 
## 方法一:
--------------------------------------------------------

### 1,先把自己的工作整理干净
$ git add .

### 2,隐藏工作区
$ git stash save "工作中"
$ git stash list
$ git pull

### 3,回复工作区
$ git stash apply  +Tab

### 4,解决冲突
$ git mergetool 弹出解决冲突软件


## 方法二:
--------------------------------------------------------
### 1,先把自己的工作整理干净

$ git add .
$ git commit -m "工作了那些"
$ git pull

### 2,解决冲突
$ git mergetool 弹出解决冲突软件

4,Git的本地工作环境干净的的脚本

## cd /目标文件
if [[ `git status | grep '无文件要提交,干净的工作区'` -eq 0 ]]; then
 git checkout master
 git pull
 elif [[ `git status | grep '您的分支与上游分支 'origin/master' 一致'` -eq 0 ]]; then
 git pull
fi

 

### 使用TortoiseGit解决Git冲突的具体方法 在使用TortoiseGit处理Git冲突时,可以按照以下方式操作并解决问题: #### 1. 配置第三方工具Beyond Compare 如果默认的小乌龟自带比较工具有缺陷,则可以通过配置第三方工具(如Beyond Compare)来提升效率。进入TortoiseGit的设置界面,在`Diff Viewer`和`Merge Tool`选项中指定Beyond Compare路径[^1]。 #### 2. 模拟冲突场景 为了更好地理解冲突产生的原因以及如何解决它,可以通过创建两个独立的工作区来进行测试。例如,在`test1`文件夹中修改某个文件并提交到远程仓库,而在另一个工作区`test2`中对该同一文件进行不同修改后再尝试拉取更新。此时会发生冲突情况[^2]。 #### 3. 处理冲突 当检测到存在未解决的差异时: - 右键点击项目根目录 -> `Resolve...` - 对于每一个标记为“conflicted”的文件,打开它们查看具体的更改部分。 - 手动编辑这些文件以消除不一致之处或者利用之前设定好的外部合并程序辅助完成此任务。 #### 4. 提交解决方案 一旦解决了所有的冲突之后,记得再次执行如下命令以便正式记录此次改动并向服务器推送最终版本: ```bash git add . git commit -m "Resolved merge conflicts" ``` 注意:只有当你确实进行了某些实质性的改变才会被允许继续上述流程;如果没有实际变动却试图强行推进的话可能会遇到错误消息:“No changes added to commit”。 以上就是关于通过TortoiseGit应对可能出现的各种类型的Git冲突的一个概括介绍及其对应措施说明[^2]. ```python # 示例代码展示简单的自动化脚本用于批量解析冲突状态下的文件名列表 import os def get_conflict_files(repo_path): conflict_files = [] for root, dirs, files in os.walk(repo_path): for file_name in files: if "<<<<<<<" in open(os.path.join(root,file_name)).read(): conflict_files.append(file_name) return conflict_files repo_directory = './your-repository' print(get_conflict_files(repo_directory)) ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值