对于我的持续集成构建,我想确保我的git沙箱中没有存放任何杂散文件,并且没有任何文件被无意中更改。
我知道git reset --hard HEAD
,这解决了部分问题。但我想我要做的是删除所有未跟踪和忽略的文件。我可以用蛮力的方式来做,只做:
rm -rf *
git checkout -f
但必须有一种更有效的方法来做到这一点。有什么想法吗?
答案 0 :(得分:13)
(为后代扩展)
您的问题可以分为两部分:将修改后的文件返回到上次提交中的状态,并删除不属于存储库的任何额外文件:
git reset --hard HEAD
将您的文件恢复到HEAD中的状态,删除任何修改(即使它们是要提交的阶段)
git clean -f -d -x
将删除所有未跟踪的文件或目录,包括被忽略的文件(感谢@Jefromi)
答案 1 :(得分:-1)
对于CI更好的解决方案,不是单独的repo克隆吗?
您只需从您的工作回购中克隆CI-job之前所有已提交的更改(没有任何工件和本地更改)