`
snoopy7713
  • 浏览: 1149746 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

搞定Git中文乱码、用TortoiseMerge实现Diff/Merge

    博客分类:
  • Git
阅读更多
#!/bin/sh

# 全局提交用户名与邮箱
git config --global user.name "Yuchen Deng"
git config --global user.email loaden@gmail.com

# 中文编码支持
echo "export LESSCHARSET=utf-8" > $HOME/.profile
git config --global gui.encoding utf-8
git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding gbk

# 全局编辑器,提交时将COMMIT_EDITMSG编码转换成UTF-8可避免乱码
git config --global core.editor notepad2

# 差异工具配置
git config --global diff.external git-diff-wrapper.sh
git config --global diff.tool tortoise
git config --global difftool.tortoise.cmd 'TortoiseMerge -base:"$LOCAL" -theirs:"$REMOTE"'
git config --global difftool.prompt false

# 合并工具配置
git config --global merge.tool tortoise
git config --global mergetool.tortoise.cmd 'TortoiseMerge -base:"$BASE" -theirs:"$REMOTE" -mine:"$LOCAL" -merged:"$MERGED"'
git config --global mergetool.prompt false

# 别名设置
git config --global alias.dt difftool
git config --global alias.mt mergetool

# 取消 $ git gui 的中文界面,改用英文界面更易懂
if [ -f "/share/git-gui/lib/msgs/zh_cn.msg" ]; then
rm /share/git-gui/lib/msgs/zh_cn.msg
fi
 

首先要说明的是:这里介绍的方法都是大部分是本人“悟”出来的,所以网上难有流传!
好方法不能自己私藏,否则就白忙乎这几天了,分享给有需要的朋友们。如果有转载,敬请注明来自*CSDN老邓*作品。
呵呵,给自己打广告,实在是无耻之极,权当无聊之时打字之用。
欢迎流传,为最优秀的分布式版本管理系统Git做宣传!!

步骤:
1. 下载:http://loaden.googlecode.com/files/gitconfig.7z
2. 解压到:<MsysGit 安装目录>/cmd/,例如:D:\Program Files\Git\cmd
3. 进入Bash,执行gitconfig

搞定什么了?
看看gitconfig的内容先:

Perl code

 

 



这个脚本解决了:
1. 中文乱码
2. 图形化Diff/Merge
3. 还原英文界面,更好懂
其中最有价值的,就是Git的Diff/Merge外部工具TortoiseMerge配置。
安装MsysGit后,一个命令即可完成配置。
适用于MsysGit安装版与绿色版。

网上关于为Git配置TortoiseMerge来进行diff和merge的介绍几乎没有(反正我没有搜索到),但我认为TortoiseMerge是最好用的,单文件(一个可执行程序,绿色版,下载地址:http://sourceforge.net/projects/tortoisesvn/files/Tools/1.6.7/TortoiseDiff-1.6.7.zip/download ),实在是绝配!

为什么不使用TortoiseGit?他们不是集成了TortoiseMerge吗?
理由:TortoiseGit只有Windows才有,我更喜欢git gui,结合gitk,跨平台实在相同的操作方式,更爽!
如果您离不开TortoiseGit,这篇文章就直接无视吧。

分享到:
评论

相关推荐

    windows下git中文乱码解决.docx

    在 Windows 平台下使用 Git 时,经常会碰到中文乱码的问题,这个问题是由于 Git 的配置不当引起的。下面我们将详细介绍如何解决 Windows 下 Git 中文乱码的问题。 首先,我们需要了解 Git 中文乱码的原因。Git 使用...

    Atom-merge-conflicts,解决atom中的git合并冲突。参与SmashWilson/Merge.zip

    在软件开发过程中,Git是广泛使用的版本控制系统,用于追踪代码的变化并协助多人协作。然而,当多个人同时修改同一份文件时,Git可能会产生合并冲突,这时就需要一种有效的方式来解决这些冲突。 "Atom-merge-...

    小甲鱼讲解git视频教程(第1节/共9节)

    5. **版本历史查看**:演示如何使用`git log`、`git diff`等命令查看提交历史和文件差异,理解版本间的演变。 6. **分支管理**:介绍Git强大的分支功能,如`git branch`、`git checkout`、`git merge`,强调分支在...

    git(mac/win) 两种版本.zip

    7. 版本控制策略:良好的Git实践包括定期拉取最新代码(`git pull`)、使用分支隔离开发任务、避免直接在主分支上提交代码,以及利用`git rebase`或`git merge --no-ff`进行冲突较少的合并。 总之,Git是软件开发不...

    小甲鱼讲解git视频教程(第4节/共9节)

    3. **添加与提交**:当项目中的文件发生变化时,需要先用`git add`命令将改动添加到暂存区,然后使用`git commit`提交这些改动到本地仓库,附带提交信息以记录这次改动的原因。 4. **版本回溯**:`git log`命令可以...

    小甲鱼讲解git视频教程(第6节/共9节)

    此外,熟练使用`git log`查看提交历史,`git status`检查当前状态,`git diff`比较文件差异,以及`git reset`回退到某个特定提交,都是日常Git操作的基础。 本视频教程的前五节可能已经教授了Git的安装、初始化仓库...

    小甲鱼讲解git视频教程(第5节/共9节)

    在Git中,版本对比是通过`git diff`命令实现的。此命令可以比较工作目录与暂存区、暂存区与上一次提交,或者两个任意的提交之间的差异。通过对比,我们可以清晰地看到哪些文件或代码行发生了变化,这在多人协作的...

    最新Git与Github首篇巨作课程 Git&Github极速入门与攻坚实战结合课程 一次搞定Git.txt

    Git与Github教程详细介绍了Git的工作机制,Git命令行的基础学习,Git-Eclipse和Nginx的准备工作,Git与Github分支体系,Git与Github的远程和本地工作原理,Git与Github克隆实战和最后的课程精华总结部分,可以帮助...

    git命令行扩展工具 Git Extras.zip

    Git Extras是一款非常实用的命令行工具,它是对Git原生...由于这个工具是用C/C++编写的,所以标签中提到的"C/C++"可能是指其底层实现语言。总的来说,Git Extras是Git用户的一个强大补充,值得在日常开发中尝试和使用。

    小甲鱼讲解git视频教程(第2节/共9节)

    Git提供了工具和策略来解决这些冲突,包括手动编辑冲突文件和使用`git merge --abort`或`git reset`命令。 9. **Git图形化界面**:除了命令行工具,还有许多图形化的Git客户端,如SourceTree、GitHub Desktop等,...

    小甲鱼讲解git视频教程(第8节/共9节)

    - **合并分支**:当开发完成,需要将分支上的改动合并到主分支(通常是master或main)时,使用`git merge &lt;branch-to-merge&gt;`命令。Git会尝试自动合并代码,如果存在冲突,需要手动解决。 - **解决冲突**:在合并...

    git新手操作手册,包含文件/文件夹添加、删除,分支创建、合并、切换、拉取、推动等操作

    Git是分布式版本控制系统,用于跟踪对文件和项目文件夹的更改。对于新手来说,掌握基本的Git操作至关...同时,了解`git status`、`git log`、`git diff`等其他常用命令也是很重要的,它们有助于了解项目的状态和历史。

    小甲鱼讲解git视频教程(第3节/共9节)

    `git branch`用于列出所有分支,`git checkout -b &lt;branch_name&gt;`创建并切换到新分支,`git merge &lt;branch&gt;`合并分支,这些操作在多分支开发中必不可少。 6. **版本回退**:如果发现某个提交有问题,可以使用`git ...

    微信小程序-重邮帮小程序开发框架

    脚手架使用方法 cnpm install 安装相关依赖 npm run watch 开启监视 刷新 npm run generate 生成一个新的 page (并且在顶层的 app.json 中添加这个 page) 有命令行交互 npm run build 小程序项目文件夹选中 dist ...

    git-diff-export

    git 没有提供导出变化文件的功能。 实现类似 svn export的功能,导出有变化的文件。(bash shell)

    Git 源代码管理/下载工具

    Git是一种分布式版本控制系统,它在软件开发领域尤其是开源项目中被广泛使用。Git的出现极大地改进了源代码的管理和协作流程。本节将详细介绍Git的基本概念、主要功能以及如何使用Git进行源代码管理。 首先,Git的...

    diff2 diff算法实践

    《diff2 diff算法实践》 在信息技术领域,`diff`是一种广泛应用的算法,主要用于比较文本文件之间的差异。这个算法能够高效地找出两个文件之间不同之处,从而帮助开发者追踪代码变化,进行版本控制,或者合并冲突。...

    git status中文乱码md,学习代码

    以下是一些关于如何解决Git中文乱码问题的知识点: 首先,我们需要理解Git的配置文件`.gitconfig`,它存储了用户的全局设置,包括字符编码设置。你可以通过`git config --list`查看当前的配置。如果未设置`core....

Global site tag (gtag.js) - Google Analytics