日度归档:2019年1月17日

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 的过程了,而不是以前的那种方式。

Qt Creator 项目属性配置常用设置

设置编译后目标保存目录

DESTDIR     = bin

设置一些编译过程中临时文件目录

MOC_DIR     = tmp/moc
OBJECTS_DIR = tmp/obj
UI_DIR      = tmp/ui
RCC_DIR     = tmp/rcc

设置头文件的拓展目录

INCLUDEPATH += $$PWD/libs/

根据不同属性链接不同的静态库

win32:CONFIG(release, debug|release):       LIBS += -L$$PWD/libs/ -ljsoncpp
else:win32:CONFIG(debug, debug|release):    LIBS += -L$$PWD/libs/ -ljsoncpp_d

或者

LIBS        += -L$$PWD/libs/
win32 {
    CONFIG(debug, debug|release) {
        LIBS += -ljsoncpp_d
        LIBS += -lnim_cpp_sdk_d
    } else {
        LIBS += -ljsoncpp
        LIBS += -lnim_cpp_sdk
    }
}

根据不同操作系统设置平台化差异属性

unix {
    target.path = /usr/local/lib
}

win32 {
    target.path = C:\Windows
}

INSTALLS    = target

更多请参考:http://doc.qt.io/qt-5/qmake-variable-reference.html