【问题标题】:why i cannot checkout another git branch?为什么我不能签出另一个 git 分支?
【发布时间】:2012-09-17 18:52:00
【问题描述】:
$ 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

【问题讨论】:

    标签: git version-control git-branch git-diff git-checkout


    【解决方案1】:

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

    【讨论】:

    • 那么 git stash 可以跨分支使用吗?
    【解决方案2】:

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

    【讨论】:

    • 问题是我想将更改提交到 lab_master 分支,而不是当前的 master 分支...
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-31
      • 2022-01-09
      • 1970-01-01
      • 2013-03-10
      • 1970-01-01
      • 2021-07-22
      • 2017-07-04
      相关资源
      最近更新 更多