$ 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
答案 0 :(得分:9)
Git可以防止您切换到另一个分支,因为这会覆盖您应用于文件project.properties
的某些更改。你可以使用git checkout -f lab_master
抛弃更改,或者先通过git stash
(以及git stash pop
检查其他分支后隐藏更改。)如果您确定,则要保留更改,您也可以简单地提交它们。
答案 1 :(得分:1)
您需要提交更改或存储更改http://git-scm.com/book/en/Git-Tools-Stashing
答案 2 :(得分:0)
git diff已经使用-b标志来忽略空格。 这与你提到另一个分支的愿望相冲突。 为此你需要使用'git diff master..anotherbranch'