git - 删除 git 目录中一个分支上的本地文件,但将其保留在本地另一分支上

标签 git

我有一个包含两个分支的 git 存储库。一个是我的代码所在的 master 分支,而另一个称为 gh-pages (有关 github pages 的文档)。
现在,在 master 分支,在我运行程序后创建了一些文件,我希望它们在本地可见(但未跟踪,例如日志文件)。但是,我不希望这些文件在我的其他分支上可见。所以我这样做:

$ python program.py  # On master: create test1 and test2
$ ls test?  # shows test1 and test2 are here
$ git checkout gh-pages
$ ls test?  # shows test1 and test2 are here, but I don't want them on this branch
$ rm test?
$ git checkout master
$ ls test?  # test1 and test2 are gone, but they should still be here

有没有办法让本地文件在一个 git 分支上,但在另一个分支上却没有?

最佳答案

git stash可以帮助您保存未跟踪的文件并在分支之间切换。
git stash man page

示例:您正在访问 master并想切换到gh-pages .
$ git stash save --all <stash name> (1)
$ git checkout gh-pages (2)
正在处理gh-pages ...
$ git checkout master (3)
$ git stash pop <stash name> (4)

(1) 保存未跟踪的文件忽略的文件以使工作目录干净。
(2)切换至gh-pages
(3) 返回master
(4) 检索您之前保存的未跟踪文件。

编辑命令以满足您的要求。
仅存储未跟踪的文件:--include-untracked
要存储忽略和未跟踪的文件:--all (无需重复--include-untracked)

关于git - 删除 git 目录中一个分支上的本地文件,但将其保留在本地另一分支上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32438802/

相关文章:

git - 将项目从计算机导入到 GitHub 存储库

git - 在 smartgit "git-am is in progress"中重新定位

git - 如何阻止 git 在分支之间移动我的更改?

git - 是否可以将 git commit 设置为具有 1970 年之前的时间戳?

git - 如何在 git clean -fd 中保留所有被忽略的文件?

git - 在 GIT 中,如何防止人们更改或删除已推送的提交?

Git:如何修改旧 merge (在一系列 merge 中)?

git cherry-pick 不只是选择提交的差异

eclipse - 如何在 Eclipse PDT 中为 PHP 项目手动触发 DLTK 索引

git - 拿一个当前的 Git 分支和 "reset"它的内容来掌握