在下面,我有一个git存储库,通过运行“ git ls-files -s”,我可以看到,例如,“。gitignore”在git的暂存文件列表中。
[root@localhost snmp]# git ls-files -s
100644 10498b95150d1a473ebb8a00bdc42f33f83446fb 0 .gitignore
我也有两个分支master
和develop
。
问题是,如果我在分支master
中更改.gitignore文件,它说:
[root@localhost snmp]# git status
On branch master
Your branch is up to date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: .gitignore
no changes added to commit (use "git add" and/or "git commit -a")
因此,在我git checkout develop
之后,更改将从master
传递到develop
,而git并没有说Please commit your changes ...
;因此分支开发中的“ .gitignore”文件将崩溃!
但是再次使用git add .gitignore
!
为什么我必须git add .gitignore
,即使它已在暂存文件列表中?!