tl;dr:如果我暂存一个文件,然后运行git checkout .
,会发生什么
情况是这样的。我有一个现有的目录,我想将其与git repo的内容"合并"(并将其与repo集成)。
我将通过在.git
目录上复制来实现这一点,这会移动repo,但不会移动文件,所以我可以进行理智的手动"合并"。
git status
将显示大量"已删除"的文件。我想以一种快速的方式git checkout
这些删除的文件,但我也想排除一些"修改"的文件,以保留它们当前的文件系统内容。
所以。。。我可以在所有要复制的文件上运行git checkout
,但有更快的方法吗?
也许。。。
- 暂存(
git add
)我想保留的修改文件,然后运行git checkout .
- 使用我克隆到的原始位置(从中复制
.git/
目录,并使用文件资源管理器复制要替换的文件)
所以我想问题可以归结为"git签出会影响暂存文件吗"?
剩下的问题只是一个非常无关的背景情境解释。
所以我在一台windows机器上,我想集成我的Sublime Text 3用户包git repo,它是从OS X设置的。
所以我去github:查看我的升华文本3用户包回购
(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的效果正是我所希望的。上演,然后结账。暂存文件保持不变。