繁体   English   中英

Git Checkout未跟踪问题

[英]Git checkout untracked issue

我正在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

当我尝试签出到其他分支但失败并有效地陷入当前分支时,通常会出现上述问题。

关于这个问题,有一个建议是我的问题与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设置中工作,并使用Gi​​t Bash终端仿真器执行Git命令。 环境的差异会导致这些严重的问题吗?

我该如何解决这个问题?

好吧,情况很简单。 您在当前分支中没有某些文件在Git的控制下,但同时,您的工作树中也有这些文件。 您要切换到的分支具有这些文件,因此git需要覆盖工作树中的文件以执行检出。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM