如何在预提交钩子中正确git stash / pop以获得一个干净的工作树进行测试?
我正在尝试使用一系列单元测试进行预提交钩子,我想确保我的工作目录是干净的。编译需要很长时间,所以我想尽可能利用重用编译的二进制文件。我的脚本遵循我在网上看到的例子:
# Stash changes
git stash -q --keep-index
# Run tests
...
# Restore changes
git stash pop -q
这会导致问题。这是repro:
添加// Step 1到a.java
git add .
添加// Step 2到a.java
git commit
git stash -q --keep-index #存储更改
运行测试
git stash pop -q #恢复更改
此时我遇到了问题。该git stash pop -q显然有冲突,a.java我有
// Step 1
<<<<<<< Updated upstream
=======
// Step 2
>>>>>>> Stashed changes
有没有办法让这个流畅干净?