linux – 防止git checkout覆盖文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 防止git checkout覆盖文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1427字,纯文字阅读大概需要3分钟。
内容图文
另一个开发人员将他的.rvmrc检查到了git repo.我已经将它删除并添加到gitignore,但每次需要回溯它都会覆盖我的.rvmrc.我在OSX上,所以我发现我可以使用OSX文件锁定机制(Get Info中的“Locked”复选框)来阻止我在开发机器上发生这种情况,但是如何在Linux上完成呢?
我知道它要root并chmod到444,但是git(以我的普通用户身份运行),不知何故超越了对所有权的需求.权限,仍然会覆盖该文件.
解决方法:
具有讽刺意味的是,虽然git的默认行为是将未跟踪文件视为珍贵文件,但将文件添加到.gitignore会告诉git它可以随时删除文件.
.gitignore中的条目更常用于表示生成的文件,因此git将以静默方式覆盖它们. .git / info / exclude中的条目可能应该用于配置文件的本地版本.
请完整阅读this discussion,因为两者之间的差异似乎有些混乱.我刚尝试了这个,当你回到过去时,.git / info / exclude中的条目受到保护,产生“错误:未经跟踪的工作树文件’.rvmrc’将被合并覆盖.”根据Junio C Hamano的说法,两者之间的这种不同行为可能不是故意的.但是,如果您可以从.gitignore中删除该条目并将其移至.git / info / exclude,您可能能够完成此工作,意识到后者未在存储库之间进行版本控制或共享,并且需要与您的同事进行手动协作.
至于权限问题,请参阅:
$touch foo
$ls -l foo
-rw-r--r-- 1 josh staff 0 Oct 1 09:55 foo
$sudo chown root:wheel foo
$ls -l foo
-rw-r--r-- 1 root wheel 0 Oct 1 09:55 foo
$unlink foo
$ls -l foo
ls: foo: No such file or directory
在Unix中,创建或删除文件的能力仅基于包含它的目录的权限.文件本身的权限仅用于修改文件(不幸的是在您的情况下). rm实用程序检查文件的权限是礼貌,但取消链接是较低级别并盲目地调用系统调用.
内容总结
以上是互联网集市为您收集整理的linux – 防止git checkout覆盖文件全部内容,希望文章能够帮你解决linux – 防止git checkout覆盖文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。