2017-01-16 32 views
0

Git存储是一个非常有用的命令系列,但它不会向命令添加任何内容(即,如果没有提交命令,则无法提交,而您可以使用变通方法存储命令)。Git:模拟git存储而不存储命令

如果你不得不隐藏你的工作,但没有隐藏命令,你会怎么做?

+0

我怀疑这个前提,你不能没有'commit'子命令提交。例如,请参阅https://git-scm.com/docs/git-commit-tree下的'commit-tree'命令。 – Boldewyn

+0

我这样做与其他版本控制系统的方式本质上是'git diff> changes.patch'。然后重新应用它们(用git你可以通过'git apply'来完成,或者你可以使用'patch'命令来重新应用它)。这是一个管理的熊,但可以做到。尽管'git stash'更友好。 – jszakmeister

+0

此外,你可能想看看[Gitless](http://gitless.com/)。他们试图解决他们认为是Git更基本的问题。在Gitless中,当你改变分支时,它会保存你的分支变化,据说不需要存储。我不同意这种说法,但它仍然是一个有趣的项目。 – jszakmeister

回答

1

我喜欢的一种选择是在有问题的分支上进行正式的临时提交,

# work work work 
git commit -m 'Completed the feature' 

现在你可以切换到另一个分支并从那里继续。当谈到时间来恢复到原来的分支,可以完成功能并修改临时承诺:

git checkout original_branch 
# finish the work 
git commit --amend 

现在你只剩下一个承诺,而且你可以在某个地方做了修补程序其他。

请注意,git stash内部实际上提交了一个提交(其中2或3个),以保存工作目录和索引的状态。

阅读@torek的lengthy answer about git stash通过链接。

相关问题