Git要求我在checkout master上提交或存储更改,即使所有更改都已提交?

时间:2012-01-03 07:07:56

标签: git

我在本地有两个分支,masterBerislav。后者目前是活跃的,我已经做出了所有的改变。当我尝试结账到master时,我收到以下消息:

  

错误:您对以下文件的本地更改将被覆盖   通过结帐:[活动分支中更改的文件列表]请,   在切换分支之前提交更改或存储它们。   中止

然而,我尝试的其他所有内容 - commitstatusmerge - 告诉我没有任何提交(工作目录清理)。到达我的master分支需要做什么?

编辑:当我尝试git stash时,我得到了:

  

错误:将未修改的[文件路径]提供给diffcore

以上错误中列出的所有文件。

8 个答案:

答案 0 :(得分:41)

我今天遇到了类似的问题。 git status未列出结帐有抱怨的文件。我做了一个:

git checkout -- path/to/file

撤消对文件的任何更改。

撤消当前工作目录上所有未暂停更改的更简单方法 [1]

git checkout -- .

[1] - 请注意 - 您将丢失正在处理的任何其他未暂停的更改(如果有)。如果您不知道自己在做什么,请备份您正在处理的文件:)

答案 1 :(得分:39)

这很简单:

git stash
git stash pop

运行git stash时看到的“错误”并不值得关注。它只是git识别文件没有任何未提交的更改。

答案 2 :(得分:12)

我在一个新的克隆上遇到了类似的问题。我刚用--force(-f)标志强制结账

git checkout --force some_branch 

可能不是解决您正在进行更改的回购问题的最佳方法,但在我的情况下,我确信我没有做任何更改,只是想切换分支。

答案 3 :(得分:10)

将违规文件移至其他位置。然后从树中删除有问题的文件。再次拉。然后将您的违规文件中的更改与您刚刚提取的文件区分开来。黑客,但它的确有效。

答案 4 :(得分:2)

您的工作副本中似乎有未跟踪的文件,这些文件会在另一个分支上进行跟踪。 Git拒绝签出另一个分支,因为你当前未跟踪的本地文件将被另一个分支上的文件覆盖。

你现在可以

  • 将这些文件添加到当前分支,如果这些文件与此分支相关
  • 删除那些不需要的文件

答案 5 :(得分:1)

与@JohnHammink的答案非常相似,但现在就这样了。

<强>解决方案

  1. 将文件移至另一个目录。
  2. 提交您的更改(可能会显示您刚删除了两个文件)。
  3. 再次将文件添加到目录中。
  4. 提交(您应该只能看到一个文件被提交)。
  5. 在我的情况下,这是因为重命名的文件仅对案例进行了更改。例如fooViewModel到FooViewModel。 Git一直认为同一个文件实际上是两个独立的文件。

    我认为这与Unix区分大小写有关,而windows并不是真的。

    希望这有帮助

答案 6 :(得分:0)

我遇到了同样的问题,这解决了我的问题(在Linux上):

    public class ToSite extends Activity {

    WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_view);

        Utils.setShared(this);
        String url = getIntent().getExtras().getString("url");

        System.out.println(url);

        if (!URLUtil.isValidUrl(url)) {
            finish();
            Toast.makeText(this, "URL not Valid", Toast.LENGTH_LONG).show();
        }
        webView = (WebView) findViewById(R.id.webview);
        webView.setWebViewClient(new MyBrowser());

        webView.getSettings().setLoadsImagesAutomatically(true);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        webView.loadUrl(url);
    }

    private class MyBrowser extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }
}

答案 7 :(得分:0)

根据消息提示,重新运行带有--force选项的命令。

flutter upgrade --force