一、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")
  1. 解决冲突: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
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐