这只是发生了:
[
2019-02-09 12:00:00 +0000 to 2019-02-09 13:00:00 +0000,
2019-02-09 14:00:00 +0000 to 2019-02-09 16:00:00 +0000,
2019-02-09 17:00:00 +0000 to 2019-02-09 18:00:00 +0000
]
我的理解是,$ git branch
* master
...lots of other branches...
$ git checkout -tb feat/bandwidthprelude
M MANIFEST.in
M lint.sh
M setup.py
M ...some other source files...
Branch 'feat/bandwidthprelude' set up to track local branch 'master'.
Switched to a new branch 'feat/bandwidthprelude'
$ git status
On branch feat/bandwidthprelude
Your branch is up to date with 'master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
...[redacted]...
nothing added to commit but untracked files present (use "git add" to track)
在切换分支时将在文件进行本地修改时打印git checkout
。但是在这种情况下,根据M
(和我的记忆),文件没有本地修改,尽管它们是我最近编辑并提交的文件。我确认我所做的最后编辑没有丢失。 发生了什么事?
如果我重复在master和git status
上,则不会发生同一件事。
答案 0 :(得分:1)
这似乎是由文件元数据更改触发的误报(修改是真实的,但不是Git跟踪的信息)。
特别是,我做的不寻常的事情是意外关闭了我的编辑器(在macOS上为TextMate),这导致它编写了一些信息来打开文件的元数据,从而更新了它们的修改时间。然后,随后的git checkout -tb <branchname>
(但出于某种原因而不是git checkout -b
切换到现有分支的git checkout
)将产生伪造的M
行。
如果我只是touch
前git checkout -b
个文件,就会发生完全相同的事情。
所以,只是一个很小但几乎无害的git bug。