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 stash(およびgit 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フラグを使用しています。これは、別のブランチを参照したいというあなたの願望と矛盾します。そのためには、「gitdiffmaster..anotherbranch」を使用する必要があります

于 2012-09-27T00:13:44.087 に答える