我正在编写一个简单的预提交 git Hook ,用于更新暂存文件的版权 header 中的年份。
修改带有版权的行后,我希望 Hook 暂存该行,使其成为提交的一部分。它不能只是 git add
整个文件,因为那里可能有其他不应该暂存的预先存在的更改。
我在 git add
手册中没有看到任何让您暂存特定行的选项。
我想我可以git stash save --keep-index
,应用我的更改,git add
文件,然后git stash pop
,但这似乎相当粗糙。有更好的方法吗?
最佳答案
这是另一种可能的解决方案:
在运行您的版权修改脚本之前,执行
git status
以获取它将要提交的文件的列表。保存文件列表。做一个提交。然后, stash 其余的(不相关的)更改,并将您的脚本应用于上面保存的文件列表。使用
git commit --amend
更改之前的提交。最后, pop 存储以恢复您的索引。如果需要,解决冲突。
我不知道有什么方法可以告诉 git add
只添加特定的行。您如何描述要添加的行?按行号?这似乎在少数情况下是可能的,而且通常用处不大。
关于git - 我如何使用 git 在文件中仅暂存一行以供提交,全部来自脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4618470/