git - 按时间戳忽略文件

问题描述 投票:0回答:1

我的情况是这样的:我在为一个老游戏修改源代码。有很多文件。因为这是一个老游戏,所有没有被我修改过的文件都有一个老文件修改的时间戳。

如果我可以只把最近(由我)修改过的文件添加到版本库中(跟踪它们),那将会对我很有帮助。这样一来,我就可以很容易地看到哪些文件被修改过,并且可以更容易地自动打包它们。

我可以写一个程序,在后台跟踪所有文件的时间戳,并动态地修改gitignore文件,但是否可以用git onboard工具来做这些事情?

问好。

Neconspictor

git gitignore
1个回答
0
投票

我不知道有什么git工具可以做到这一点。显而易见的位置应该是在 gitignore 工具,但它只适用于文件模式。你必须独立生成这个文件列表。由于你的文件只是本地文件,文件列表不需要推送到git服务器上,所以 $GIT_DIR/info/exclude 听起来是放列表的正确位置。

在你的情况下,你可以用类似(例如2015-03-22 15:30)的方式生成列表。

touch -t 201503221530 timestamp_file
find . ! -newer timestamp_file > .git/info/exclude

不过,如果不是太麻烦的话,我一般会建议在git里追踪所有的东西。

  • 未修改的文件通常不会造成困扰
  • 可以直接获取提交之间的更改文件列表 (git diff --name-only <sha1> <sha2>git diff --name-only <sha1> HEAD)
  • 假设您当前只编辑(从而跟踪)了文件A和B,然后您开始编辑文件C,您需要记住添加并提交文件C。之前 你开始研究C,以便跟踪未来的变化。如果已经对C进行了跟踪,不是更容易吗?(在这里,应该有一种方法可以使用某些 git钩子例如,一个 pre-commit 钩子,以检查所有文件是否在 .git/info/exclude 老于 timestamp_file如果不是这样,则拒绝提交)。)
  • 在这个ABC的例子中,当你想得到所有的 你的 变化,你不能做一个简单的 git diff --name-only <sha1> HEAD 了,因为它将包括在你的修改之前添加C。所以,这绝不是 "自动打包更容易",确实要难得多。
© www.soinside.com 2019 - 2024. All rights reserved.