标签归档:git

git pull 代码的时候默认使用 rebase 而不是 merge

git pull 实际会有两个操作,一个是 git fetch,另外一个是 git merge。一般 merge 的情况下会产生一个新的提交名字为 Merge branch ****,如下图所示:

这个新的提交会导致提交记录中产生多余的提交信息,实际与解决问题相关的提交不符而且对于一些洁癖来说这种难以接受,所以 git 提供了一个 rebase 的方式来替代 merge,rebase 可以按顺序结构重新整合提交顺序而不是产生一个新的提交。具体的区别大家可到网络上搜索一下这里重点不是介绍他们两个的区别。

而如果你希望每次拉代码的时候不需要执行 git fetch 后再执行一次 git rebase,而是像以前一样直接执行 git pull 而是使用 rebase 来合并代码的话,那以下命令可以帮到你。

git config --global pull.rebase true

执行次命令后,每次 git pull 都将是一个 git fetch + git rebase 的过程了,而不是以前的那种方式。

svn 项目迁移到 git 保留 commit 记录

最近迁移了两个 SVN 项目到 Gitlab 上,唯一的目的就是想把提交记录保存下来,至于谁提交的无所谓,只希望能在看不懂一些代码的时候能追溯回去看看当时为什么这样修改。随后查看了很多资料,初试的时候遇到了很多问题,最终使用如下命令完美解决:

git svn clone https://mysvn/demo --no-metadata --no-minimize-url demo

参考资料:https://blog.csdn.net/xueshanhaizi/article/details/54929365

Cmder git 中文显示乱码解决方案

Cmder 是 Windows 下替换原有 cmd 的绝佳工具,但是与默认的 cmd 一样,都与 git 命令行存在一些兼容性问题,比如中文乱码问题。在 Cmder 安装目录下的 config/user-profile.cmd 中添加如下代码,可以解决中文乱码的问题。

set LANG=zh_CN.UTF8

添加后的配置文件

添加后重新打开 Cmder 的效果

将 Cmder 加入到右键菜单,到 Cmder 目录下执行如下命令即可:

Cmder.exe /REGISTER ALL

添加后的效果:

另外你还可以修改终端起始符号 λ 改成 $,修改 vendor/clink.lua 文件,将

"\x1b[1;32;40m{cwd} {git}{hg}{svn} \n\x1b[1;39;40m{lamb} \x1b[0m"

替换为 (实际就是将 {lamb} 替换为 $ )

"\x1b[1;32;40m{cwd} {git}{hg}{svn} \n\x1b[1;39;40m$ \x1b[0m"

参考:https://blog.csdn.net/qq_33304418/article/details/79918123

git community book 中文版

现在 git 在工作中是越来越常用了,比起原来使用的 windows 下的 svn 强大许多,正因为他的强大所以在使用过程中也相对复杂和多样化。这个文档是我一个朋友传给我的,共享给大家学习,里面包含了 git 的详细工作方式和使用方法。保存起来备用吧!

Download Git Community Book

2015-10-06_110450