admin 管理员组文章数量: 887021
2023年12月25日发(作者:php源码加密技术)
Linux系统下基于BeyondCompare3工具的图形可视化方式确认git代码内容的修改和git冲突的解决,git log的查看------ 陈泽元 20120810 第三研究所
git工具很强大,但如果对命令使用不熟悉,很容易引起代码上传的相关问题,在这里提供一种基于BeyondCompare3工具可视化检查上传前代码内容的修改以及出现冲突时的可视化解决方案。 在ubuntu下,默认是可以使用meld工具进行冲突内容的可视化解决,但该工具不够强大,或许我们更熟悉使用BeyondCompare工具,具体方法为:
一、安装BeyondCompare3 务必安装BeyondCompare3工具,Ubuntu下默认安装了BeyondCompare2版本,如果使用该版本,后续操作会有所不同,尽可能的安装版本3。安装BeyondCompare3这里不做介绍,可以上网搜索。
如果你安装的是BeyondCompare2,可以安装下述方式升级到版本3:
在连接外网的前提下,依次点击“应用程序”---->“编程”---->“Beyond Compare”,启动BeyondCompare2软件,点击菜单“”,弹出的对话框上根据你机器的CPU类型来选择更新软件(目前,我们使用的都是64位系统,可以选择AMD64那一项下载),下载完后,默认保存在/root/下,双击下载的包,根据提示安装就可以了。
安装完毕后,在/usr/bin/下,会有一个的脚本文件,它用来启动BeyondCompare软件的,一定要保证它的存在。
二、修改git配置文件,将BeyondCompare3设置为git的默认比较工具
修改git配置文件的方式有三种:(如果看不到下面所述文件,说明该文件属性是隐藏的,请点击ctrl+h组合键,显示隐藏文件)
1、编辑.gitconfig文件(注:该文件是系统整个git工具的默认配置文件,此处设置后,将在所有用到的git地方都起作用)
打开/root/.gitconfig文件,添加如下内容至文件末尾:[diff]
tool = bc3
[difftool "bc3"]
cmd = /usr/bin/bcompare "$LOCAL" "$REMOTE"
[difftool]
prompt = false
[merge]
tool = bc3
[mergetool "bc3"]
cmd = /usr/bin/bcompare "$LOCAL" "$REMOTE" "$BASE" "$MERGED"
trustExitCode = true
2、编辑项目目录下的git配置文件(注:这种方式只会修改当前目录下的git配置信息,当在其它目录下操作时,配置不起作用)
打开/your_M3_source_code/.git/config文件,添加如下内容至文件末尾:[diff]
tool = bc3
[difftool "bc3"]
cmd = /usr/bin/bcompare "$LOCAL" "$REMOTE"
[difftool]
prompt = false
[merge]
tool = bc3
[mergetool "bc3"]
cmd = /usr/bin/bcompare "$LOCAL" "$REMOTE" "$BASE" "$MERGED"
trustExitCode = true
3、或许可以使用命令行进行配置,该方法没尝试过,如果有兴趣,可以尝试:git config --global =bc3
git config --global =/usr/bin/bcompare "$LOCAL" "$REMOTE"
git config --global =false
git config --global =bc3
git config --global =/usr/bin/bcompare "$LOCAL" "$REMOTE" "$BASE" "$MERGED"
git config --global xitcode=true
三、确认git配置文件是否配置成功
在终端上输入:
git config --global --list
查看git全局配置文件.gitconfig文件是否包含所添加的配置信息;
在your_M3-source_code下输入:
git config --local --list
可以查看当前工程下/.git/config的配置信息,看是否包括你所添加的配置。
四、使用BeyondCompare3进行代码修改的查看
在your_M3_source_code下通过命令:
git difftool
就可以启动BeyondCompare3可视化检查你修改了但还为上传的代码,以确认待上传的代码是否是你更改的。如下图:上面的实例中,添加了一行log,通过git difftool就很容易看出来了,它会将修改过的文件逐个逐个弹出来,由你来检查确认修改的内容。
五、使用BeyondCompare3进行冲突解决
在your_M3_source_code下通过命令:
git mergetool
就可以启动BeyondCompare3可视化查看有冲突的代码,如下图:
可以看到,上面的界面上,从上之下分了好几层,从左至右也分了好几层。(注意箭头的颜色哦)
从上至下,列出了冲突点及详细信息,从左至右,上面部分分了3块,第一部分是LOCAL的代码,第二部分是BASE的代码,第三部分是REMOTE的代码。你所要做的操作就是在界面最下面那一块,根据你的需要,把你所需要的代码保留下来(注意界面最下面那一块有两个箭头,小心点击哈,点错了就会造成误会了),然后保存即可。
至此,冲突就解决完了,但启动BeyondCompare3可能会生成一些中间文件,如果关闭BeyondCompare3软件后,中间文件还在,请手动删除,一般的,会有后缀为.orig的中间文件需要手动删除,里面记录了解决冲突前的现场。(使用git status可以看到这些中间文件)
六、借助BeyondCompare3查看尚未上传的某一个文件的修改情况在终端命令行下输入:git difftool -p 文件名将只检查“文件名”这个文件的修改情况,其余的文件将全部过滤了,不会再弹出它们的修改情况。(使用“git diff -p 文件名”时,将在终端命令行中显示该文件的修改情况)七、借助BeyondCompare3查看某一个文件全部的上传记录(包括修改的内容详细信息)在终端命令行下输入:git log -p 文件名将会输出该文件全部的上传记录和每次修改的内容的详细信息。八、借助BeyondCompare3查看某一个文件在前后两个版本上的修改记录,需要先后两步操作1、查看某一个文件的全部上传记录,取得上传的版本编号git log -l -p 文件名将输出该文件全部修改记录的版本号,注释信息,上传作者,时间戳等信息,但不包括修改的详细内容。2、借助BeyondCompare3查看两个版本之间的修改情况git difftool 版本号1..版本号2 -p 文件名举例如下:查看在两个版本上的修改情况:第一步:得到该文件全部修改记录(此处我们只关心版本号的变化)git log -l -p frameworks/base/telephony/java/com/android/internal/telephony/gsm/输出为:commit 206eda4df37e158e11ec2da2d600d0b539b4cea1commit 2d89b6e0b2fd824c512323fe447b666a107a064d
第二步:查看这两个版本号之间该文件的修改情况git difftool 206eda4df37e158e11ec2da2d600d0b539b4cea1..2d89b6e0b2fd824c512323fe447b666a107a064d -p frameworks/base/telephony/java/com/android/internal/telephony/gsm/输出为:两个版本之间,该文件的前后修改记录一目了然的呈现了出来。(使用“git show 版本号 文件名”将在终端命令行下查看第“版本号”次该文件的详细修改信息)注:在使用git工具时,不妨加上一些选项,或许有更多意外的发现,比如参数:-l, -p, --stat, --name-only, --name-status等
版权声明:本文标题:Linux系统下基于BeyondCompare3工具的图形可视化方式确认git代码内容的 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1703486024h453429.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论