gpt4 book ai didi

git - git 可以提交 "empty versions"新的非空文件吗?

转载 作者:IT王子 更新时间:2023-10-29 01:29:50 26 4
gpt4 key购买 nike

git 可以提交一些文件的空版本吗?恰当的例子是我需要首先添加新的(未跟踪的)非空文件并将其作为文件提交,以便将它们的内容标记为新的并进行审查(完整,未跟踪的文件应该添加到索引中;git diff 应该通过将文件与其提交的空版本进行比较来显示新添加的内容。

git add -N file...,它会将内容为空的 file 放入索引中,但这只表示 file 将被添加git commit 提示文件没有被添加。问题是当前的非空版本不是必须添加的,而只是新文件的空版本。

有办法吗?

PS:这个问题是在自动将文件添加到 git 存储库的程序的上下文中提出的(我的程序遵循学生编写的代码)。未提交的代码是我尚未批准的代码。因此,学生创建的程序启动时的状态应该是状态,即使我的程序只是在他们的主目录中发现了一个新的非空程序;这是通过在 git 存储库中自动提交任何新学生程序文件的新空版本来处理的。因此,与上次提交的 git 修订版相比,他们编写的新代码行看起来像是新添加的内容。

最佳答案

老实说,我不太明白这个有什么用。我会尝试修复审核流程,而不是搞乱历史。但如果你真的想这样做,这里有几种方法:

  1. 务实的方法:

    mv file out-of-way
    touch file
    git add file
    mv out-of-way file
  2. 陶瓷方法:

    git add -N file
    git add -p file

    ...当被问及是否应该添加单 block 时,只需回答“否”。(显然这在 2019 年不再起作用。)

    <
  3. 管道方法:

    首先,确保对象数据库中存在一个空对象:

    git hash-object -w --stdin < /dev/null

    这将返回空 blob 的 SHA1(即 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391)。您只需创建此对象一次。现在您可以通过

    在索引中创建空文件
    git update-index --add --cacheinfo 0644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 file

关于git - git 可以提交 "empty versions"新的非空文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4232171/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com