我的初始提交包含一些日志文件.我已添加*log到我的.gitignore,现在我想从我的存储库中删除日志文件.
git rm mylogfile.log
Run Code Online (Sandbox Code Playgroud)
将从存储库中删除文件,但也将从本地文件系统中删除它.
如何在不删除文件的本地副本的情况下从存储库中删除此文件?
我已经提交了大量我现在想要忽略的文件.我如何告诉git现在忽略未来提交的这些文件?
编辑:我也想从存储库中删除它们.它们是在构建之后创建的文件或用于特定于用户的工具支持.
当你使用
git rm --cached myfile
Run Code Online (Sandbox Code Playgroud)
它不会从本地文件系统中删除,这是目标.但是,如果您已经对文件进行了版本化并提交,将其推送到中央存储库,并在使用该命令之前将其拉入另一个存储库,它将从该系统中删除该文件.
有没有办法从版本控制中删除文件而不从任何文件系统中删除它?
编辑:澄清,我希望.
我和其他几个人都可以访问包含 IDE 自动生成的一个文件的存储库。该文件是特定于 PC 的,因此不应位于源代码管理中,但目前是。我想删除它并将其添加到.gitignore,但我不希望其他协作者在拉取我的更改时将其删除。关于删除文件但保留本地副本存在很多问题;但他们不覆盖其他用户,所以当他们拉动时,尽管我保留了我的副本,他们仍然会丢失副本:
还有一些问题和解决方案,可以在拉取时不丢失本地文件,这样他们就可以保留文件,但这需要拉取时的明确操作,我不想去告诉每个人到底如何拉取这个文件时间。我确实发现了两个重复的问题。得到的答案是不可能,但那都是 5 年前的事了——这期间有什么变化吗?
这很重要,因为该文件是在您首次导入整个项目时自动生成的,并且包含有关本地编译器/库版本的信息。所以删除它需要重新导入。如果有什么区别的话,那就是.idea/scala_compiler.xmland .idea/scala_settings.xml(实际上整个.idea目录应该被忽略)。基本上我想让 Git 将一个文件设置为不再跟踪,但不为任何人删除它。
我有一个非常奇怪的问题,我想知道你对此的建议.
有时,当我将更改推送到REMOTE服务器时,不会显示更改.我做ssh到远程机器,我做了git status,我看到:
修改:app/runtime/application.log
问题是,所有目录,现在还有特定文件,都是.gitignore的目标.
/nbproject/
/app/runtime/
/public_html/assets/
/app/runtime/application.log*
/app/runtime/error.log*
Run Code Online (Sandbox Code Playgroud)
没有ftp直接完成,只使用了推拉.
也许它们是app/runtime/application.log在实际站点上写的东西,所以它application.log与存储库中的不同,当发生这种情况时git拒绝拉,因为它将覆盖application.log到旧版本.
这可能发生在同一目录上的许多其他文件中.应用程序运行的那一刻,可以由实时站点创建的文件.
我的问题是,我们怎样才能避免这种情况?为什么.gitignore似乎在这里没有效果?
ps - 如果我需要提供更多细节,比如服务器挂钩或其他什么,请告诉我.