问题 如何在Visual Studio 2013中存储未提交的更改


需要一些帮助我如何使用Visual Studio 2013搁置Git存储库中的未经修改的更改。我来自PHPStorm,您可以在一个分支上搁置未经修改的更改,切换到另一个分支并取消搁置。

但是,我找不到/看看如何在Visual Studio中完成此操作。有人能解释一下这个问题吗?

只是为了澄清为什么可能需要这样做:我可能正在分支X,然后认为我是错误的分支,我应该在分支Y上。我需要搁置分支X的所有更改,切换到分支Y,取消搁置更改然后提交。

谢谢。


11679
2017-10-27 12:38


起源



答案:


git 你正在寻找的概念是 stash。您可以添加更改,就好像要提交更改一样,然后将它们存储起来 git stash。更改分支后,您可以 git stash apply 要么 git stash pop (前者留下可以重复使用的存储)。

我很熟悉 shelf 来自Perforce的概念,与Git的存储有一个有用的区别 - 你可以将一个架子发送到服务器并与其他人共享,你不能用git做到这一点。但是,使用git,您只需使用存储创建一个分支并将其推送到服务器,允许其他人将其合并到需要的位置。

Microsoft不提供使用此功能的方法。


5
2017-10-27 13:19



有没有某种方法可以使用Microsoft的Git Provider插件来做到这一点? - teh0wner
对不起,我对这个插件不太熟悉。我从命令行和SourceTree(在OS X上,但存在Win版本)程序中使用git。我建议你在同一个地方寻找并在那里寻找一个藏匿选项。 - mah
在我看来,这并没有回答OP问题,我会改为:“怎么做 git stash 在VS 2013 IDE“。我也在寻找它,但得出结论它不受支持(至少在VS 2013 Update 2中)。我发现你也可以投票支持它 这里  你可以用它 指南 设置程序包管理器控制台以表现为git命令行。 - eXavier


答案:


git 你正在寻找的概念是 stash。您可以添加更改,就好像要提交更改一样,然后将它们存储起来 git stash。更改分支后,您可以 git stash apply 要么 git stash pop (前者留下可以重复使用的存储)。

我很熟悉 shelf 来自Perforce的概念,与Git的存储有一个有用的区别 - 你可以将一个架子发送到服务器并与其他人共享,你不能用git做到这一点。但是,使用git,您只需使用存储创建一个分支并将其推送到服务器,允许其他人将其合并到需要的位置。

Microsoft不提供使用此功能的方法。


5
2017-10-27 13:19



有没有某种方法可以使用Microsoft的Git Provider插件来做到这一点? - teh0wner
对不起,我对这个插件不太熟悉。我从命令行和SourceTree(在OS X上,但存在Win版本)程序中使用git。我建议你在同一个地方寻找并在那里寻找一个藏匿选项。 - mah
在我看来,这并没有回答OP问题,我会改为:“怎么做 git stash 在VS 2013 IDE“。我也在寻找它,但得出结论它不受支持(至少在VS 2013 Update 2中)。我发现你也可以投票支持它 这里  你可以用它 指南 设置程序包管理器控制台以表现为git命令行。 - eXavier


Visual Studio 2013 Update 2不支持git存储库的搁置(在git中称为存储),但您可以在存储库本身使用第三方工具(我使用SourceTree)。


9
2018-06-11 10:59



你可以在git存储库上使用git工具并不能提供丰富的信息。可以说,尽管几乎无限的资源,微软莫名其妙地给你一个贫困的git界面。我无法想象哪些技术难题会阻止这种情况,并怀疑没有。 - Rick O'Shea
将某人指向他们可能没有考虑过的工具,如何才能提供信息?仅仅因为你对微软感到愤怒并不意味着我的回答是错误的。 - thelem
我同意你@thelem - Casey


也许我出现在这个晚了。

我使用TortoiseGit ...它工作得很好,可以与Visual Studio一起工作,因为它只是一个资源管理器插件。

https://tortoisegit.org/


1
2017-08-08 05:09



这是GUI存储的首选解决方案。 - Robino