• git core.autocrlf 配置说明

    时不时就要百度一次这个问题,转载记录一下。

    假如你正在 Windows 上写程序,又或者你正在和其他人合作,他们在 Windows 上编程,而你却在其他系统上,在这些情况下,你可能会遇到行尾 结束符问题。 这是因为 Windows 使用回车和换行两个字符来结束一行,而Mac和Linux只使用换行一个字符。 虽然这是小问题,但它会极大地扰乱跨平台协作。

    Windows

    Git 可以在你提交时自动地把行结束符 CRLF 转换成 LF,而在签出代码时把 LF 转换成 CRLF。用 core.autocrlf 来打开此项功能, 如果是在 Windows 系统上,把它设置成true,这样当签出代码时,LF 会被转换成 CRLF:

    $ git config --global core.autocrlf true

    Linux / Mac OS

    Linux 或 Mac 系统使用 LF 作为行结束符,因此你不想 Git 在签出文件时进行自动的转换;当一个以 CRLF 为行结束符的文件不小心被引入时你肯定想进行修正, 把 core.autocrlf 设置成 input 来告诉 Git 在提交时把 CRLF 转换成 LF,签出时不转换

    $ git config --global core.autocrlf input

    这样会在 Windows 系统上的签出文件中保留 CRLF,会在 Linux 和 Mac 系统上,包括仓库中保留 LF。

    Windows (另外的情况)

    如果你是 Windows 程序员,且别人也全在 Windows 上开发项目,可以设置false取消此功能,把回车符记录在库中:

    $ git config --global core.autocrlf false

    转载自:http://www.qinbin.me/git-core-autocrlf%E9%85%8D%E7%BD%AE%E8%AF%B4%E6%98%8E/

  • 搭建 git 本地中转站

    局域网内有多台开发机器,因为种种原因,与服务器同步代码有不便之处。于是打算在本地做一个 git 的镜像,所有机器都统一 clone 这个本地镜像库,然后由这个镜像库负责与服务器更新。

    1. 使用 –mirror 参数 clone

    cd /some/where/
    git clone --mirror git@server.com:user/someproject.git

    执行以上命令后,在本地的 /some/where/someproject.git/ 下建立了对应项目的镜像,它是一个裸版本库(不包含工作区,直接就是版本库的内容),对于我这样的新手来说不是很好懂什么是“裸版本库”,但是进去目录看一下就知道了。

    2. 本地操作

    在同一台机器上,我们这样写代码:

    cd ~/workspace/
    git clone /some/where/someproject.git

    这样 clone 出来的就是平时熟悉的、包含工作区的内容,平时怎么用就怎么用。
    阅读更多…