git:如何再次切换分支

git:如何再次切换分支,git,merge,branch,git-branch,git-merge,Git,Merge,Branch,Git Branch,Git Merge,我有很多未提交的更改,这是不好的做法。 我已经试着慢慢地做出我所有的重要改变 我试图跨分支重新组织工作,所以我这样做了(从我的主控更改开始): 对于多个分支。 然后我发现当我开始时,我的起始主控没有更新,所以我已经完成了 git fetch git checkout Feature1 git merge origin/master git checkout Feature2 git merge origin/master ... 那我应该是最新的,干净的。 然后我修改了Feature2中的一

我有很多未提交的更改,这是不好的做法。 我已经试着慢慢地做出我所有的重要改变

我试图跨分支重新组织工作,所以我这样做了(从我的主控更改开始):

对于多个分支。 然后我发现当我开始时,我的起始主控没有更新,所以我已经完成了

git fetch 
git checkout Feature1
git merge origin/master
git checkout Feature2
git merge origin/master
...
那我应该是最新的,干净的。 然后我修改了
Feature2
中的一些内容。现在我想切换到
功能1
。不管它怎么说

you have local changes in X; you can't switch branches
但我刚刚提交并将我的更改推送到
X
Feature2
。 我做错了什么


如果我这样做

git diff X > atextfile
atextfile
显示整个X已更改,但如果我比较标记为-+的两个版本,它们是相同的

git diff --check X 

仅返回尾随的空格差异。如何消除这些问题?

git status
将显示已更改的内容,包括已更改的文件X,而
git diff X
将显示更改


如果要将此更改移动到Feature1中,可以使用merge标志执行签出,该标志将跨更改合并
git checkout-m Feature1

如果
git status
是clean,则不应看到此错误。git status不是clean:它显示。。。。没有添加要提交的更改。并列出了大量修改过的内容,包括我最新的一行中的X,如果它有git LogThank的话。我已经准备好结账了。然而,我在git diff中看到的一些变化是我在这个分支上从未做过的(而且在这个分支上也没有其他人做过,因为我刚刚创建了它),所以我不确定这样做是否正确。是否可能您的master与Feature2的合并没有完成或最终没有提交?如果你看到很多意想不到的变化,这是你唯一想到的。我怎么检查呢?通常我会通过GUI做,但现在我只有一个cli如果我区分了一个,我看不到版本之间有任何变化-和+是否
git diff--check
git diff-R
显示文件的任何变化?显然,这些应该有助于显示尾随空格或行尾的更改。
git diff --check X