更新:根据我在下面的问题中的链接,“M”似乎意味着在分支更改期间看到它时合并,但使用git status
进行了修改:“当我们切换到主分支时,工作目录被认为是”脏“,因为README文件尚未添加到索引并提交。因此,git将尝试将README的内容从测试分支合并到主分支中的README文件:“
原谅我的git无知,但为什么当我在上游分支中进行更改,然后检出我的主分支(没有提交),修改后的文件follows the current branch as a Merge?当我告诉它合并时,我认为git只会合并。我并不总是希望我的编辑能够传播到另一个分支,所以有没有办法告诉git在合并之前询问?
iow:如果我在当前分支机构中使用未提交的编辑意外切换到另一个分支,我怎么能告诉git阻止我搞砸另一个分支?
[on branch:foo]
$ echo test >> main.c
[on branch:foo]
$ cat main.c
#include <stdio.h>
int main void (int argc, char **argv)
{
printf ("Hello world!\n");
return (0);
}
test
[on branch:foo]
$ git checkout master
M main.c
Switched to branch 'master'
[on branch:master]
$ cat main.c
#include <stdio.h>
int main void (int argc, char **argv)
{
printf ("Hello world!\n");
return (0);
}
test
[on branch:master]
$
答案 0 :(得分:1)
M代表修改后的含义,您的工作目录中有修改后的版本。又名您有尚未提交的更改。
当您更换分支时,您的未提交更改会继续进行。如果您想更改分支,但尚未准备好提交分支,可以使用git stash
存储它们,然后使用git stash pop
答案 1 :(得分:1)
这取决于您对更改的要求。
如果你想扔掉它们,请使用git checkout -f master
如果您想保存它们以供日后使用,git stash
更改以清理工作树,git pop
可以随时随地再次应用更改。
如果您希望更改保留在分支中,只需git commit
git checkout master
之前的更改。