Git疑问
-
如何找到所有目录下面的.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 {} \;
-
如何查看所有目录下面的.ds_store文件的git状态.
git log 可以解决貌似,
-
如何查看某个文件的历史修改情况.
glol -p filename #好的, 可以成功看到修改记录. glol filename #可以看到和这个文件有关的所有提交, 这个是概要列表, 没有每次的修改记录. glp git show HEAD #这个是和当前版本进行比较. 可以用任何版本来比较. 这个是有用的. #图形界面sourcetree成功看到了. gitk [filename] # gitk --follow [filename] #这个是因为文件改过名
- 命令行只要加上file, 就是空. 在okla的目录下.
- 关键问题是: git log filename都没用, 显示为空.
- 不是所有文件, 我的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的. 神奇了. 怀疑是我在睡梦中对这个文件做了什么操作? #找到原因, 这个文件竟然不在版本控制之内. 神啊. #就剩最后一招, 重启了.
-
删除远程分支
git push origin --delete serverfix #删除了origin/serverfix分支 #参考: https://git-scm.com/book/zh/v2/Git-分支-远程分支