是否有可能在Git中结合隐藏的流行音乐?

时间:2012-12-05 15:56:08

标签: git git-stash

我正在与Git合作开发一个项目,由于我不需要进入的原因,我发现我可能不得不对代码进行一些更改,然后存储它们而不是提交它们。我有时可能需要这些更改,但不是所有时间都不需要它们是永久性的。然而,这项工作可能很重要,我想尽量为自己省去一些问题。

假设我保存了多个git stashes,所以我的stash看起来像这样:

stash@{0}: First change
stash@{1}: Second change
...
stash@{10}: Last and final change

有没有办法在一个命令中弹出所有这些更改?或者将它们组合成stash@{11}: All previous changes together之类的东西?

或者这甚至是一个好主意?

编辑:经过一番研究,我意识到我真的应该分支,而不是以这种方式使用git stash。谢谢你的答案!

2 个答案:

答案 0 :(得分:4)

或者,也许做一个分支?分支在Git中很便宜,除非你告诉Git,否则不会被推到远程仓库。实践中的例子。

创建一个名为“my-hidden-feature”的分支:

git checkout -b my-hidden-feature

编辑和提交内容(例如,本地配置文件):

touch test.config               # Create a new file
git add test.config             # Add the new file
git commit -m "Test commit"     # Commit your hidden feature

返回原始代码并做一些工作:

git checkout master             # Return to the main branch
...work here...                 # Do some work
git commit -am "Work on master" # Commit your work

哦,你需要隐藏的功能吗?容易:

git checkout my-hidden-feature  # Go to your hidden branch
git rebase master               # Update the hidden feature with new commits from master
...do some stuff...             # Do some work on the hidden branch
git commit -am "A new hidden commit"

而且,等等!

啊,最后但并非最不重要。如果你是在命令行工作,我强烈推荐像oh-my-zsh这样的工具,它们有一个可以显示你终端当前分支的插件。非常非常有用,如果你不想迷失在Git limbo中。

答案 1 :(得分:3)

你正在严厉滥用藏匿处。藏匿只不过是一个隐藏的扔掉分支。 git stash save执行此操作:

git checkout -b stashbranch
git add -A
git commit -m "stashentry"
git checkout -

git stash apply执行类似的操作:

git cherry-pick *stashcommit*
git reset HEAD^

如果你了解这些命令的作用,你就不需要像这种情况那样使用藏匿的复杂设备。

你有没有理由不使用分支?