快速检查大多数但不是所有文件的方法(恢复工作区更改)?

时间:2013-08-09 17:25:45

标签: git

tl; dr:如果我暂存文件然后运行git checkout .会怎样?

这是情况。我有一个现有的目录,我想与git repo的内容“合并”(并将其与repo集成)。

我将通过复制.git目录来执行此操作,这会移动仓库但不会移动文件,因此我可以执行合理的手动“合并”。

git status会显示大量“已删除”的文件。我想快速git checkout这些删除的文件,但我也想排除一些“修改”的文件,以保持其当前的文件系统内容。

所以...我可以对我要复制的所有内容运行git checkout,但有更快的方法吗?

也许......

  1. 阶段(git add)我要保留的修改过的文件,然后运行git checkout .
  2. 使用我克隆到的原始位置(我将.git/目录复制出来并使用文件资源管理器复制要替换的文件(但仍需要将其取出)
  3. 所以我想这个问题归结为“git checkout会影响暂存文件吗?”


    问题的其余部分只是一个非常无关的背景情境解释。

    所以我在Windows机器上,我想整合我从OS X设置的Sublime Text 3 User软件包git repo。

    所以我从github结帐我的sublime-text-3-user-package repo:

    (MSYS bash shell)

    cd ~
    git clone https://github.com/my-st3-user-package
    cp -r my-st3-user-package/.git ~/AppData/Roaming/Sublime\ Text\ 3/Packages/User
    

    现在在我的用户目录中,我可以看到所有丢失的文件,我必须调和它们。

    我为Preferences.sublime-settings这样做,现在看起来就是这样。

    $ git status
    # On branch master
    # Changes not staged for commit:
    #   (use "git add/rm <file>..." to update what will be committed)
    #   (use "git checkout -- <file>..." to discard changes in working directory)
    #
    #       deleted:    .gitignore
    #       deleted:    Default (OSX).sublime-keymap
    #       deleted:    GitGutter.sublime-settings
    #       deleted:    Gitconfig.JSON-tmLanguage
    #       deleted:    Gitconfig.tmLanguage
    #       modified:   Package Control.sublime-settings
    #       deleted:    README.md
    #       deleted:    Shell-Unix-Generic.sublime-settings
    #       deleted:    SublimeLinter.sublime-settings
    #       deleted:    Tomorrow-Night-Eighties.tmTheme
    #       deleted:    movemultiplelines.py
    #
    # Untracked files:
    #   (use "git add <file>..." to include in what will be committed)
    #
    #       Package Control.ca-bundle
    #       Package Control.ca-list
    #       Package Control.cache/
    #       Package Control.last-run
    no changes added to commit (use "git add" and/or "git commit -a")
    

    除了Package Control.sublime-settings之外,我想恢复所有这些文件。

1 个答案:

答案 0 :(得分:0)

这是一个愚蠢的问题,因为我可以像我刚才那样测试它。

选项1完全按照我希望的方式工作。上演,然后结账。分段文件保持不变。