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

时间:2015-09-07 12:29:17

标签: 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分支上没有?

1 个答案:

答案 0 :(得分:4)

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