1. 如何找到所有目录下面的.ds_store文件, 并且让git不再控制他.

    ### 笨办法
    git rm --ignore-unmatch  --cache -r */*/.DS_Store #移除两层目录下的ds, -r循环移除, --ignore-unmatch忽略不匹配的情况.
    #一般的查找和删除: 
    find . -type d -name ‘.svn’ | xargs rm -rf 
    find . -type d -iname ‘.svn’ -exec rm -rf {} \;
    
  2. 如何查看所有目录下面的.ds_store文件的git状态.

    git log 可以解决貌似, 
    
  3. 如何查看某个文件的历史修改情况.

    glol -p  filename #好的, 可以成功看到修改记录.
    glol filename #可以看到和这个文件有关的所有提交, 这个是概要列表, 没有每次的修改记录.
    glp
    git show HEAD  #这个是和当前版本进行比较. 可以用任何版本来比较. 这个是有用的.
    #图形界面sourcetree成功看到了. 
    gitk [filename] #
    gitk --follow [filename] #这个是因为文件改过名
    
    1. 命令行只要加上file, 就是空. 在okla的目录下.
    2. 关键问题是: git log filename都没用, 显示为空.
    3. 不是所有文件, 我的crawler.php显示为空. 但是, readme.md就是正常的.
    gba#尝试, 发现: http://stackoverflow.com/questions/12613793/why-is-there-a-remotes-origin-head-origin-master-entry-in-my-git-branch-l
    # remotes/origin/HEAD -> origin/master
    git remote set-head origin -d # 删除这个指针, 其实不删也没关系.
    git remote set-head origin -a # 修改这个指针到当前的远程分支.
    #然而这么改并没有用.
    git log filename #都没用, 显示为空.
    gitk [filename] #这个也没用, 显示为: no commits selected
    #stackoverflow也没有看到啥, 尝试最后一招, 更新git.
    #仔细排查, 发现一个奇怪的情况, 就这么一个文件是没有log的. 神奇了. 怀疑是我在睡梦中对这个文件做了什么操作?
    #找到原因, 这个文件竟然不在版本控制之内. 神啊.
    #就剩最后一招, 重启了.
    
  4. 删除远程分支

    git push origin --delete serverfix #删除了origin/serverfix分支
    #参考: https://git-scm.com/book/zh/v2/Git-分支-远程分支