git - 我如何使用 git 在文件中仅暂存一行以供提交,全部来自脚本?

标签 git scripting

我正在编写一个简单的预提交 git Hook ,用于更新暂存文件的版权 header 中的年份。

修改带有版权的行后,我希望 Hook 暂存该行,使其成为提交的一部分。它不能只是 git add 整个文件,因为那里可能有其他不应该暂存的预先存在的更改。

我在 git add 手册中没有看到任何让您暂存特定行的选项。

我想我可以git stash save --keep-index,应用我的更改,git add 文件,然后git stash pop,但这似乎相当粗糙。有更好的方法吗?

最佳答案

这是另一种可能的解决方案:

  1. 在运行您的版权修改脚本之前,执行 git status 以获取它将要提交的文件的列表。保存文件列表。做一个提交。

  2. 然后, stash 其余的(不相关的)更改,并将您的脚本应用于上面保存的文件列表。使用 git commit --amend 更改之前的提交。

  3. 最后, pop 存储以恢复您的索引。如果需要,解决冲突。

我不知道有什么方法可以告诉 git add 只添加特定的行。您如何描述要添加的行?按行号?这似乎在少数情况下是可能的,而且通常用处不大。

关于git - 我如何使用 git 在文件中仅暂存一行以供提交,全部来自脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4618470/

相关文章:

git - 如何在 Git 的 show 命令输出中去掉 ...

ios - Xcode 9 - 无法与辅助应用程序通信

linux - 批量重命名具有不同扩展名的多个文件 Linux 脚本?

windows - 如何在 Windows 中生成确定大小的文件?

javascript - 从photoshop Javascript中的指定文件夹中获取文件名

git - 如何从 ant 构建脚本中查找最新的 git commit hash

Git:将文件的历史记录从一个存储库复制到另一个存储库

linux - RPM 规范文件可以 "include"其他文件吗?

git - 如何使用 git 跟踪主目录中的 "dot"配置文件?

linux - 用awk实现tail