2
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/lab_master
  remotes/origin/master

$ git checkout lab_master
error: Your local changes to the following files would be overwritten by checkou                                                                                                                           t:
        **project.properties**
Please, commit your changes or stash them before you can switch branches.
Aborting

为什么我只是未能结帐 lab_master 分支?

另一个问题:为什么我不能将当前文件与另一个分支中的文件进行比较?

$ git diff project.properties -b lab_master
fatal: bad flag '-b' used after filename
4

3 回答 3

10

Git 可以保护您免于切换到另一个分支,因为这会覆盖您对文件应用的一些更改project.properties。您可以通过使用丢弃更改,也可以git checkout -f lab_master先通过git stashgit stash pop在签出另一个分支之后)将它们存储起来。如果您确定要保留更改,您也可以简单地提交它们。

于 2012-09-26T07:38:15.930 回答
1

您需要提交更改或存储它们,http ://git-scm.com/book/en/Git-Tools-Stashing

于 2012-09-26T07:37:25.907 回答
0

git diff 已经使用 -b 标志来忽略空格。这与您引用另一个分支的愿望相冲突。为此,您需要使用 'git diff master..anotherbranch'

于 2012-09-27T00:13:44.087 回答