我使用脚本自动检出过去12个月内每个月的第一次提交。偶尔会发生一些奇怪的事情,我不再允许检查过去的提交。错误是这样的:
error: Your local changes to the following files wold be overwritten by checkout:
db tests/framework.cpp
Please, commit your changes or stash them before you can switch branches. Aborting
这已经发生了很多次(我没有编辑任何文件,只是检查出来)。我通常只是从Github下载一份新的repo副本,然后再次开始这个过程并且它可以工作。但是一旦它破裂我不知道如何解决它,并且它一直在发生。有什么想法吗?
以下是我的脚本中的迭代,后面是git status
for i in {12..1}
do
cd
cd git/mongodb/mongo
git checkout master
git checkout $(git rev-list --before "$(date -d "$(date +%Y-%m-01) -$i months 00:01" +%Y-%m)-01" -n 1 HEAD)
git checkout master
Git状态:
在分支主机上
未提交的提交更改:
modified: dbtests/framework.cpp
未跟踪文件:
SHA1.txt
SHA1.txt.
file
file.
未向提交添加任何更改
答案 0 :(得分:3)
您可以使用--force
标志让Git进行结帐。
或者,您可以使用git reset --hard
重置为提交,而不是使用结帐。
答案 1 :(得分:0)
2019+语法现在将使用new git switch
command(Git 2.23 +)
git switch -f ...
-f是--discard-changes
选项的别名:
即使索引或工作树与HEAD不同,也继续操作。
恢复索引和工作树以匹配切换目标。
如果指定了--recurse-submodules
,子模块的内容也将被恢复以匹配切换目标。这用于丢弃本地更改。