Git Checkout错误

时间:2011-10-20 23:04:12

标签: git github cygwin commit git-checkout

我使用脚本自动检出过去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.

未向提交添加任何更改

2 个答案:

答案 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,子模块的内容也将被恢复以匹配切换目标。

这用于丢弃本地更改。