【发布时间】:2012-08-22 02:38:32
【问题描述】:
我在本地工作。 我检查了一个分支“b1”并做了一些工作。 我想保持分支“b1”的原样,但回到主分支,让它就像我签出“b1”之前一样。但是当我用“git checkout master”签出master时,我在分支中所做的所有更改都已经在master中,没有任何提交或合并。我做错了什么?
【问题讨论】:
标签: git git-branch
我在本地工作。 我检查了一个分支“b1”并做了一些工作。 我想保持分支“b1”的原样,但回到主分支,让它就像我签出“b1”之前一样。但是当我用“git checkout master”签出master时,我在分支中所做的所有更改都已经在master中,没有任何提交或合并。我做错了什么?
【问题讨论】:
标签: git git-branch
在再次签出master 之前,您是否已将更改提交给b1?
如果您在切换分支之前没有提交或存储您的更改,您的更改将保留在您的本地文件中,因此无论您签出哪个分支都会出现。
【讨论】:
如果您对分支b1 所做的更改将被签出master 覆盖,那么除非您存储更改或将更改提交到索引,否则git 不会让您执行签出。你会得到以下类型的错误
error: Your local changes to the following files would be overwritten by checkout:
/src/path/to/conflicting/file.java
Please, commit your changes or stash them before you can switch branches.
如果结帐顺利进行(您没有提交任何内容),那么两个分支之间就没有冲突,git 只会保持工作树原样。
您需要做的是签出b1 提交您所做的所有更改并希望本地化到b1,然后签出master。更改现在不应位于 master 分支中。
【讨论】: