git 使用beyond compare来diff与merge
一、git基础知识
1. 工作目录
即平时使用ls命令时看到的文件与目录
2. 暂存区
使用git add filename,可以把有修改的文件添加到暂存区
3. 本地库
使用git commit可以把文件从暂存区提交到本地库中,只有添加到库中的修改,才有历史记录,可以追溯与还原
4. 远程库
使用git push可以把文件从本地库推送到远程库中,
5. diff
git中用来对比差异的有两条命令,分别是:git diff与git difftool
5.1 git diff
作用:调用默认的工具来完成对比
说明:如果指定文件名,则只比较指定的文件,如果不指定文件名,则会比较所有有改动的文件,后续的命令也都是如此。
参数:后面不加其余参数时,是比较工作目录与本地库中的文件差异,后面加参数(–cached)时,是比较暂存区与本地库中文件差异,如:git diff –cached
5.2 git difftool
调用第三方图形工具来对比,可以自配置
从https://git-scm.com帮助文件中看到的,可能不太准确,但不防先这样理解。
Git Diff 的插件版本在本书中,我们使用 git diff 来分析文件差异。 但是,如果你喜欢通过图形化的方式或其它格式输出方式的话,可以使用 git difftool 命令来用 Araxis ,emerge 或 vimdiff 等软件输出 diff 分析结果。 使用 git difftool –tool-help 命令来看你的系统支持哪些 Git Diff 插件。
6. merge
作用:合并分支
操作:如果要将dev分支合并入master分支,则操作如下:
1. 先切换到master分支:git checkout master;
2. 再合并:git merge dev;
3. 如果没有冲突,则合并成功;
4. 如果有冲突,则解决冲突;
# 运行git status命令,可以查看有冲突的文件,【Unmerged paths】段下列出的文件都是有冲突的
[dengqingyong@DengMacBook helloworld-b]$ git status
On branch master
You have unmerged paths.
(fix conflicts and run "git commit")
Unmerged paths:
(use "git add <file>..." to mark resolution)
both modified: helloworld-b1/src/main/java/helloworld_b1.java
no changes added to commit (use "git add" and/or "git commit -a")
- 解决冲突:git mergetool,此命令会依次打开有冲突的文件,让你手工解决冲突;
//冲突文件中会出现如下段,其中【++<<<<<<< HEAD】与【++=======】之间的内容是当前(master)分支的,【++=======】与【++>>>>>>> 】之间的内容是将要合入(dev)分支的,处理冲突时,你可以二选一,删除一个保留一个,也可以综合两者
public class helloworld_b1 {
public void sayNew(){
++<<<<<<< HEAD
+ System.out.println("version 2.1: helloworld_b1");
+ System.out.println("new line: merge test xxxooo");
++=======
+ System.out.println("version 2.0: helloworld_b1 DEVwvf分支 whnt修改mwp修改内容 ");
++>>>>>>> 1f128ee0d56602d61839774f369277323e2a36ca
}
}
二、git集成beyond compare
1. mac os 配置
#!/bin/sh
git config --global diff.tool bc4
git config --global difftool.prompt false
git config --global difftool.bc4.cmd '"/usr/local/bin/bcomp" "$LOCAL" "$REMOTE"'
git config --global merge.tool bc4
git config --global mergetool.prompt false
git config --global mergetool.bc4.cmd '"/usr/local/bin/bcomp" "$LOCAL" "$REMOTE" "$BASE" "$MERGED"'
git config --global mergetool.bc4.trustexitcode true
将以上内容保成为setgitconfig文件,赋可执行权限:chmod +x setgitconfig
执行前运行:git config –list 查看可用配置
执行后再运行一次,对比下看有没有生效,或者直接在一git项目中运行git difftool
2. windows 配置
打开【开始菜单——所有程序——git——Git Bash】,在其中执行以下命令:
git config --global diff.tool bc4
git config --global difftool.prompt false
git config --global difftool.bc4.cmd '"C:\Program Files\Beyond Compare 4\BCompare.exe" "$LOCAL" "$REMOTE"'
git config --global merge.tool bc4
git config --global mergetool.prompt false
git config --global mergetool.bc4.cmd '"C:\Program Files\Beyond Compare 4\BCompare.exe" "$LOCAL" "$REMOTE" "$BASE" "$MERGED"'
git config --global mergetool.bc4.trustexitcode true
更多推荐
所有评论(0)