【问题标题】:Git with Visual Studio 2013带有 Visual Studio 2013 的 Git
【发布时间】:2014-10-16 09:32:22
【问题描述】:
虽然我多年来一直在使用 Visual Studio 进行开发,但直到最近我才需要掌握版本控制,所以如果我看起来很愚蠢,请原谅我的无知。
我已将一个网站项目提交到我的存储库的主分支。我在 master 下创建了一个名为“stage2”的分支。目的是 master 将用于维护现有的实时站点,而“stage2”将用于下一个版本的开发,但在开发完成之前不希望包含在任何已发布的构建中。但是,当有未提交的更改时,我无法从“stage2”切换回主控。我想我可能会误解 git 分支应该如何使用。谁能帮我解决这个问题?
谢谢
【问题讨论】:
标签:
git
visual-studio
visual-studio-2013
【解决方案1】:
听起来你已经对分支的基本概念有了正确的认识,但是你对提交并不熟悉。我建议您阅读 this introduction to git 之类的内容,尝试对它的工作原理有一个基本的了解。
要回答您的具体问题,您需要一个干净的工作树,然后才能签出另一个分支。这基本上意味着你需要在做任何其他事情之前告诉 git 如何处理你的“正在进行的”工作。假设您不想丢弃您的更改,您可以为您的更改创建一个commit(或多个提交),或者为以后创建stash 它们。如果您所做的更改是完成的“部分”工作,而不仅仅是正在进行的临时工作,那么我建议您为您所做的每一项工作进行提交。
【解决方案2】:
确实,当您有未提交的更改时,Git 不允许您切换分支。
看来你有几个选择:
- 使用
git reset --hard 放弃当前分支中的更改
- 使用
git stash 暂时存储当前状态。当您返回功能分支时,您可以使用git stash pop 恢复您的工作
- 在此分支上提交您当前的工作,然后切换分支
你的概念是正确的;一个功能分支用于“做一些工作”,[通常]有几个提交。提交既便宜又容易,如果您愿意,您可以随时使用 Rebase 来压缩嘈杂的历史记录。分支轻巧且便宜,因此鼓励您使用它们。