git

  • riskersriskers/blog· 3 年前 git

    git reset 是恢复到某次 commit 记录的命令,有三种常用模式:

    • mixed(默认模式),get reset <commit-id>
    • soft get reset --soft <commit-id>
    • hard get reset --hard <commit-id>

    现在假设我们有 foo.txt 文件,里面只有一个字符 1 ,已经把他放进版本库中:

    foo.txt

    然后修改 foo.txt ,在里面添加一个字符 2 ,放进版本库:

    foo2.txt

    此时使用 reset 命令的任何一种模式恢复到 d855a71d5 都会将 7a39fa077 记录抹去,回到 d855

  • 网上看到的大部分是关于Git的命令,这边所说的是Git进行团队开发的所涉及到的一些操作,适合Git新手借鉴。

    假设A和B进行一个小型的展示页面开发。
    A做 Javascript,B做 HTML&CSS
    两人用git-osc进行代码托管,B在git-osc上创建了一个项目。

    A和B把项目clone到本地:

    cd E:/Github
    git clone http://git.oschina.net/B/show.git

    A简单的初始化了自己的项目目录

    mkdir js
    cd js
    echo //mainjs >main.js

    紧接着,A提交了自己的第一份代码后,就去休息了:

    git

  • 初始化自己项目的时候,出现了N+个warning: LF will be replaced by CRLF,

    git config --global core.autocrlf false

    参考:http://stackoverflow.com/questions/1967370/git-is-saying-lf-will-be-replaced-by-crlf

    看来存入缓存的时候,不同的操作系统文件结尾返回不一样,所以的CRLF会被替换为LF。但在取出的时候会被转换回CRLF,潜在的危险是二进制的改变·所以还是留为true吧。

  • Halp ticket:

    • support/6c407d52c9f711e38a0cc47a4027f259

    Git support does not handle files with accented characters correctly, declaring them as new. See e.g spec/fixtures/subdir/áccéntéd.svg in atom/markdown-preview or lloeki/svg-preview plugins.

    Steps to reproduce:

    $ git clone  https://github.
  • Some repro steps that I gathered from the existing issues:

    1. Have a file open in branch something that doesn't exist in branch atom
    2. git checkout atom
    3. ENOENT 💥
      OR
    4. Have a file open in Atom that will be affected by git rebase
    5. git rebase
    6. ENOENT 👎
      OR
      Just simply rename a file outside of Atom that's curr