Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git在添加了一个.gitignore后,将随机的东西拉到了我的另一台机器上,从而消灭了我本地回购协议的一半_Git - Fatal编程技术网

Git在添加了一个.gitignore后,将随机的东西拉到了我的另一台机器上,从而消灭了我本地回购协议的一半

Git在添加了一个.gitignore后,将随机的东西拉到了我的另一台机器上,从而消灭了我本地回购协议的一半,git,Git,编辑:所以有两种可能性: 我在.gitignore文件中使用通配符的方式(即使用单亲条目)揭示了意外行为 我是个坏孩子,从一台两周没有更新过的机器上推过来:我运行Arch,这是一台便携式机器,所以我只在冒险时使用它。我做了一个完整的系统更新,但它没有更新git,所以不确定atm 我将用一些虚拟回购测试笔记本电脑,并尝试用.gitignore破坏git。早上会回来报到,现在是睡觉时间 第二次编辑: 我不能用一台旧机器或一台看似异常的机器来复制这个问题。我能得出的唯一模糊结论是,不知何故,我那台略显

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

  • 我在.gitignore文件中使用通配符的方式(即使用单亲条目)揭示了意外行为

  • 我是个坏孩子,从一台两周没有更新过的机器上推过来:我运行Arch,这是一台便携式机器,所以我只在冒险时使用它。我做了一个完整的系统更新,但它没有更新git,所以不确定atm

  • 我将用一些虚拟回购测试笔记本电脑,并尝试用.gitignore破坏git。早上会回来报到,现在是睡觉时间

    第二次编辑:

    我不能用一台旧机器或一台看似异常的机器来复制这个问题。我能得出的唯一模糊结论是,不知何故,我那台略显过时的机器导致了一些问题。然而,因为我不能证明这一点,我不能肯定。我认为这是一个用户错误的例子

    原职:

    我刚刚添加了一个.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
    #
    

    首先,您的gitignore可能只是:

    build/
    CMSIS/
    FreeRTOS/
    
    不需要通配符

    其次,如果这些文件夹已被跟踪,则需要取消跟踪它们。
    例如:

    git rm --cached -r build/
    
    第三,在原始存储库中执行
    git status
    ,查看是否有任何文件被删除。

    执行git show以准确查看上次提交时记录的内容。

    您可能还希望尝试以下忽略已提交内容的操作:

    git update-index --assume-unchanged build/
    

    好的,很酷。这能解释为什么在我拉取时src/host/efm32zg222f32文件夹中的文件被更新了一半吗?因为那是weird@BitShift不确定:您在问题中没有确切提到什么是半更新的。但是,
    git show
    将向您显示录制的内容:您可以检查它是否包含
    src/host/efm32zg222f32
    files.Cool。是的,一切都更新得很好。我一次添加一个文件,并正确地执行操作。听起来好像git现在是垃圾,或者.gitignore产生了意外行为。@BitShift您可以使用
    git check ignore-v local/path/to/file
    (repo的本地)检查是否忽略了一个文件(您认为该文件应该被跟踪,并且在克隆中丢失了)。是否有人在推/拉操作之间截获了该代码?我记得看到一些用户在GitHubYeh上被黑客攻击完全有可能。不过我在机器上使用了vpn,所以可能不太可能。我会做一个
    git log-all-p
    来手动检查提交历史记录并确保它有意义
    git update-index --assume-unchanged build/