【问题标题】:Git checkout untracked issueGit结帐未跟踪问题
【发布时间】:2016-03-22 23:41:49
【问题描述】:

我在一个 Drupal 网站上与其他几个人合作,我们正在对 Git 进行版本控制。我们设置了一个包含我们提交的本地 Git 存储库。

在同事推送了一些更新,我提取并合并到本地 dev 分支后,我开始遇到以下问题:

user@server:/var/www/Intranet/sites/intranet/modules/custom$ git checkout dev 
error: The following untracked working tree files would be overwritten by checkout:
    themes/bigcompany/panels/layouts/radix_bryant_flipped/radix-bryant-flipped.png
    themes/bigcompany/panels/layouts/radix_bryant_flipped/radix-bryant-flipped.tpl.php
    themes/bigcompany/panels/layouts/radix_bryant_flipped/radix_bryant_flipped.inc
Please move or remove them before you can switch branches.
Aborting

当我尝试结帐到其他失败的分支并且我实际上被困在当前分支中时,通常会出现上述问题。

参考this 问题,有一个建议是我的问题与 gitignore 文件有关。但是,我的 .gitignore 文件没有任何内容表明我的主题目录的任何部分都应该被忽略,如下所示:

# .gitignore for a standard Drupal 7 build based in the sites subdirectory.

# Drupal
files
settings.php
settings.*.php

# Sass.
.sass-cache

# Composer
vendor/

# Migrate sourec files
modules/custom/haringeygovuk_migrate/source_data

如上所述,我尝试在任何分支中执行 git checkout 失败并显示上述消息。我决定用-f 开关强制它并成功切换到我的目标分支,但我丢失了几百行代码 - 我很想避免继续前进。

我在 Linux-Ubuntu VirtualBox 上工作,我的同事更喜欢在 WAMP 设置中工作,并使用 Git Bash 终端模拟器来执行 Git 命令。 环境差异会导致这些严重问题吗?

我该如何解决这个问题?

【问题讨论】:

    标签: linux windows git git-bash


    【解决方案1】:

    嗯,情况相当简单。您在当前分支中没有某些文件在 Git 的控制之下,但同时,您的工作树中有这些文件。您尝试切换到的分支具有这些文件,因此 git 需要覆盖工作树中的文件才能执行结帐。

    为防止可能的数据丢失,Git 停止切换分支的过程并通知您应该将这些受 Git 控制的文件添加到当前分支的单独提交中,然后才执行切换,或者干脆从 git 方式中删除这些文件。

    您可能选择了第二种方式。通常,只有在您真正了解自己在做什么时,您才应该“强制”任何操作。

    【讨论】:

    • 好吧,我不介意删除“无思想”这个词,这对于母语人士来说可能听起来太强烈了(显然,我不是)。也许“粗心”更适合
    猜你喜欢
    • 2015-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-15
    • 2016-12-22
    • 2017-03-15
    • 2021-04-08
    相关资源
    最近更新 更多