0

tl;博士:如果我暂存一个文件然后运行会发生什么git checkout .

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

我将通过复制.git目录来做到这一点,这会移动 repo 但不会移动文件,所以我可以做一个理智的手动“合并”。

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

所以......我可以git checkout在所有我想复制的地方运行,但有没有更快的方法?

也许...

  1. 阶段(git add)我想保留的修改文件,然后运行git checkout .
  2. 使用我克隆到的原始位置(我从中复制了.git/目录并使用文件资源管理器复制要替换的文件(尽管仍然需要将它们挑选出来)

所以我想这个问题可以归结为“git checkout 会影响暂存文件”吗?


剩下的问题只是一个非常无关紧要的背景情境解释。

所以我在一台 Windows 机器上,我想集成从 OS X 设置的 Sublime Text 3 User 包 git repo。

所以我从 github 上查看我的 sublime-text-3-user-package 存储库:

(MSYS bash 外壳)

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.

4

1 回答 1

0

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

选项 1 完全符合我的预期。暂存,然后结帐。暂存文件保持不变。

于 2013-08-09T17:27:41.453 回答