error: Your local changes to the following files would be overwritten by merge: .DS_Store

Git ignore .gitignore

有时候会遇到如下提示:
error: Your local changes to the following files would be overwritten by merge: .DS_Store

both modified: .DS_Store

如何解决:

如果你push之后远程仓库会跟踪你的.DS_Store文件,如果别人也提交了这个文件的话就会引起冲突。一般这个文件要在第一次push前就加入ignore列表中。

git rm -r --cached .DS_Store

这个代码的意思就是解除跟踪,清下缓存。

git rm --cached filename

如果还是不行按照如下流程执行:

mv .gitignore .gitignore_bak
git checkout .DS_Store
git rm -r --cached .DS_Store
mv .gitignore_bak .gitignore

或者你可能想这么操作:

git stash
git pull
git stash pop

新建项目首先记得提交一个ignore

这个是第一要务不然会有很多冲突和本地化的文件被提交,影响团队协作。所以创建一个lib的时候the first things is 创建一个.gitignore文件。 Github上有个ignore的项目,不同语言不同类别的ignore模板都提前为你准备好了,去下载吧。

全局ignore和局部ignore

  • 本地仓库忽略

    .git/info/exclude

  • 当前工作目录

    .gitignore,这个忽略文件只对某一级目录下的文件的忽略有效
    如果在项目根目录下创建一个忽略文件.gitignore,与上面的exclude等效
    Ignore有它的语法这个自己查下即可,这里不展开讲。
    
  • 全局级忽略文件

    在~/.gitconfig中配置gitignore文件
    
        [core]
        excludesfile =/Users/duofei/.gitignore_global

你可能感兴趣的:(git)