• Git


    P4Merge

    P4Merge是Git的一个第三发Diff和Merge工具(可视化冲突解决工具).

    下载地址: https://www.perforce.com/downloads/visual-merge-tool

    安装的时候只需要勾选p4merge即可:

    然后需要把p4merge的路径添加到环境变量PATH里面.

    这样操作后, 就可以通过命令行启动p4merge了:

    配置p4merge作为Git的diff tool:

    git config --global diff.tool p4merge
    git config --global difftool.p4merge.path "C:Program FilesPerforcep4merge.exe"

    因为每次使用diff tool的时候, git会弹出确认框, 我们最好把这个确认框从全局范围内默认不启用:

    git config --global difftool.prompt false

    配置p4merge作为git的merge tool:

    git config --global merge.tool p4merge
    git config --global mergetool.p4merge.path "C:Program FilesPerforcep4merge.exe"
    git config --global mergetool.prompt false

    最后检查一下全局配置:

    git config --global --list

    OK.

    下面准备一个项目, 现在的项目状态是:

    添加一个README.md, 然后add并commit.

    然后修改README.md 然后add

    然后再修改README.md:

    git status告诉我这个文件被修改了, 但是没有告诉我哪里被修改了.

    为了知道更多的细节, 这里就需要使用 git diff命令了.

    不加任何参数的情况下, 该命令

    比较的是working directory里面, 被stage的变化 vs 没被stage的变化:

    如果变化太多了显示不下, 想要退出的话, 就按q就行.

    因为我配置了git difftool, 所以也可以使用 git difftool这个命令:

    这就会弹出p4merge这个可视化工具, 可以清楚的看到变化.

    左边的是stage的, 右边的是没有stage的.

    比较working directory和最后一次commit:

    git diff HEAD.

    下面使用可视化的difftool: git difftool HEAD.

    比较Staging 区和最后一次commit.

    git diff --staged HEAD.

    使用可视化工具: git difftool --staged HEAD:

    只比较一个文件/路径.

    再修改项目的另一个文件, 然后查看状态:

    如果执行git diff的话, 那么两个文件都会被比较:

    只想比较一个文件/路径的话就需要加参数:

    git diff -- README.md:

    也可以使用可视化工具:

    git difftool -- README.md:

    比较两个commit.

    先查看历史: git log --oneline:

    git diff xxx yyy

    其中xxx和yyy都表示commit的 id, 最后一次commit可以用HEAD表示.

    下面这个命令比较的是HEAD 和 HEAD的上一次:

    git diff HEAD HEAD^.(这个命令在windows上可能有点问题, 请使用git bash):

    使用可视化工具:

    git difftool HEAD HEAD^:

    HEAD^表示上一次commit, HEAD^^就表示上两次的commit, 以此类推, 也可以使用HEAD~2的形式, 它和HEAD^^是一样的. 也可以连着使用 HEAD^^~3就像当于HEAD^^^^^.

    本地 vs 远程.

    git diff master origin/master. (origin是远程github的引用名而已, 这个可以改.) 这就是比较本地和远程的master分支.

    同样也可以使用可视化工具: git difftool master origin/master:

    最后git push origin master.

    本文就简单介绍了这些: p4merge, difftool, mergetool, git diff, git difftool, 各种情况的git diff.

  • 相关阅读:
    FIS
    git笔记 常规使用
    隐藏文字
    清除浮动的几种方法
    chrome livestyle插件
    Vue3中的微任务队列解析
    JavaScript通过父节点ID递归生成JSON树
    JavaScripts调用摄像头【MediaDevices.getUserMedia()】
    JavaScripts之变量作用域提升问题
    Webpack之 webpack-dev-server 中的 contentBase配置及作用
  • 原文地址:https://www.cnblogs.com/cgzl/p/8597066.html
Copyright © 2020-2023  润新知