在添加.gitignore之后,Git刚刚删除了我的一半本地仓库,随机的东西被拉到我的另一台机器上

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (7)

编辑:所以有两种可能性:

  1. 我在.gitignore文件中使用通配符的方式,即单独的父条目,已经显示出意外的行为
  2. 我是一个坏男孩,从大约两周没有更新的机器推出:我运行Arch,这是一台便携式机器,所以我只在冒险中使用它。我做了一个完整的系统更新,它没有更新git所以不确定atm。

我将用一些虚拟回购测试笔记本电脑,并试图用.gitignore打破git。将在早上报告,现在睡觉时间。

第二次编辑:

我不能用旧机器或看似异常的.gitignore来复制这个问题。我可以得出的唯一模糊的结论是,某种程度上我稍微过时的机器引起了问题。但是,由于我无法证明这一点,我不能肯定地说。我认为这是一个用户错误的情况。

原始邮寄:

我刚刚添加了一个包含以下内容的.gitignore文件

build
build/*
CMSIS
CMSIS/*
FreeRTOS
FreeRTOS/*
tags

然后我推动了更改并将它们拉到我的另一台笔记本电脑上。随机的东西没有拉,像文件的一半和类似的东西...然后我去看看我的makefile,发现这个:

#
# makefile
# <username>, 2019-06-02 16:16
#

all:
     @echo "makefile needs your attention"

#vim: ft=make
#

然后,当我把内容粘贴到这里时,文件现在消失了。我做了傻瓜还是Git现在处于一个不连贯的状态?

这也是我的项目结构:

$ tree

.
|-- CMSIS
|   `-- efm32zg
|       |-- Source -> /usr/include/sdks/gecko_sdk/platform/Device/SiliconLabs/EFM32ZG/Source
|       `-- system_efm32zg.d
|-- FreeRTOS
|   `-- efm32zg
|       `-- Source -> /usr/include/sdks/gecko_sdk/util/third_party/freertos/Source
|-- README
|-- build
|   |-- debug
|   |   |-- CMSIS
|   |   |   `-- efm32zg
|   |   |       |-- subdir.mk
|   |   |       `-- system_efm32zg.d
|   |   |-- FreeRTOS
|   |   |   `-- efm32zg
|   |   |       `-- subdir.mk
|   |   |-- efm32zg.ld
|   |   |-- makefile
|   |   |-- objects.mk
|   |   `-- sources.mk
|   `-- release
|       |-- STK3200_config.o
|       |-- config_dw1000.o
|       |-- config_efm32zg222f32.o
|       |-- config_example.o
|       |-- config_venus638.o
|       |-- dw1000_adaptor.o
|       |-- dw1000_buildMAC.o
|       |-- dw1000_commRxTx.o
|       |-- dw1000_decodeMAC.o
|       |-- dw1000_nodeMgmt.o
|       |-- dw1000_tofCalcs.o
|       |-- dw1000_types.o
|       |-- efm32zg222f32_adaptor.o
|       |-- efm32zg_cmu_HAL.o
|       |-- efm32zg_gpio_HAL.o
|       |-- efm32zg_gpio_IO_HAL.o
|       |-- efm32zg_interrupts_HAL.o
|       |-- efm32zg_timer_HAL.o
|       |-- efm32zg_types_HAL.o
|       |-- efm32zg_usart_HAL.o
|       |-- efm32zg_usart_IO_HAL.o
|       |-- entertainment_IPS.axf
|       |-- entertainment_IPS.bin
|       |-- entertainment_IPS.hex
|       |-- main.o
|       |-- mpi_cmu.o
|       |-- mpi_ext_dev.o
|       |-- mpi_gpio.o
|       |-- mpi_timer.o
|       |-- mpi_usart.o
|       |-- spongecake.axf
|       |-- spongecake.bin
|       |-- spongecake.hex
|       |-- startup_efm32zg.o
|       |-- system_efm32zg.o
|       |-- venus638.o
|       `-- venus638_adaptor.o
|-- src
|   |-- HAL
|   |   |-- host
|   |   |   `-- efm32zg222f32
|   |   |       |-- efm32zg_cmu_HAL.c
|   |   |       |-- efm32zg_cmu_HAL.h
|   |   |       |-- efm32zg_gpio_HAL.c
|   |   |       |-- efm32zg_gpio_HAL.h
|   |   |       |-- efm32zg_gpio_IO_HAL.c
|   |   |       |-- efm32zg_gpio_IO_HAL.h
|   |   |       |-- efm32zg_interrupts_HAL.c
|   |   |       |-- efm32zg_interrupts_HAL.h
|   |   |       |-- efm32zg_timer_HAL.c
|   |   |       |-- efm32zg_timer_HAL.h
|   |   |       |-- efm32zg_types_HAL.c
|   |   |       |-- efm32zg_types_HAL.h
|   |   |       |-- efm32zg_usart_HAL.c
|   |   |       |-- efm32zg_usart_HAL.h
|   |   |       |-- efm32zg_usart_IO_HAL.c
|   |   |       `-- efm32zg_usart_IO_HAL.h
|   |   `-- slave
|   |       |-- README
|   |       |-- dw1000
|   |       |   |-- README
|   |       |   |-- dw1000_buildMAC.c
|   |       |   |-- dw1000_buildMAC.h
|   |       |   |-- dw1000_commRxTx.c
|   |       |   |-- dw1000_commRxTx.h
|   |       |   |-- dw1000_decodeMAC.c
|   |       |   |-- dw1000_decodeMAC.h
|   |       |   |-- dw1000_nodeMgmt.c
|   |       |   |-- dw1000_nodeMgmt.h
|   |       |   |-- dw1000_regs.h
|   |       |   |-- dw1000_tofCalcs.c
|   |       |   |-- dw1000_tofCalcs.h
|   |       |   |-- dw1000_types.c
|   |       |   |-- dw1000_types.h
|   |       |   `-- dw1000_version.h
|   |       `-- venus638
|   |           |-- README
|   |           |-- venus638.c
|   |           `-- venus638.h
|   |-- README
|   |-- application
|   |   |-- README
|   |   |-- configs
|   |   |   |-- README
|   |   |   |-- _app_config.h
|   |   |   |-- config_dw1000.c
|   |   |   |-- config_dw1000.h
|   |   |   |-- config_efm32zg222f32.c
|   |   |   |-- config_efm32zg222f32.h
|   |   |   |-- config_example.c
|   |   |   |-- config_example.h
|   |   |   |-- config_venus638.c
|   |   |   `-- config_venus638.h
|   |   `-- main.c
|   |-- board
|   |   |-- README
|   |   `-- STK3200
|   |       |-- STK3200_config.c
|   |       `-- STK3200_config.h
|   |-- middleware
|   |   |-- README
|   |   |-- mpi_cmu.c
|   |   |-- mpi_cmu.h
|   |   |-- mpi_ext_dev.c
|   |   |-- mpi_ext_dev.h
|   |   |-- mpi_gpio.c
|   |   |-- mpi_gpio.h
|   |   |-- mpi_port.h
|   |   |-- mpi_timer.c
|   |   |-- mpi_timer.h
|   |   |-- mpi_types.h
|   |   |-- mpi_usart.c
|   |   `-- mpi_usart.h
|   `-- port_adaptors
|       |-- README
|       |-- dw1000_adaptor.c
|       |-- dw1000_adaptor.h
|       |-- efm32zg222f32_adaptor.c
|       |-- efm32zg222f32_adaptor.h
|       |-- venus638_adaptor.c
|       `-- venus638_adaptor.h
|-- tags
`-- tools
    `-- openocd
        `-- jlink
            `-- openocd.cfg
提问于
用户回答回答于

您可能还想尝试以下将忽略已提交的内容:

git update-index --assume-unchanged build/
用户回答回答于

首先,你的gitignore可能只是:

build/
CMSIS/
FreeRTOS/

不需要通配符。

其次,如果已经跟踪了那些文件夹,则需要解开它们。 例如:

git rm --cached -r build/

第三,git status在原始存储库中执行a 以查看是否有任何文件被删除。 做一个git show以确切地看到最后一次提交中记录的内容。

扫码关注云+社区

领取腾讯云代金券