![]() |
1
1
如果您尚未提交这些新更改,则它们对分支是不可见的,您可以直接从master分支:
|
![]() |
2
1
你可以简单的做
这将从中创建一个新分支
如果您想在分支之间切换时保留更改,但不想提交,请使用 git stash |
![]() |
3
0
正如其他人在答复和评论中提到的那样,至少有三种选择。它们之间有相当一部分的重叠,每个都有优点和缺点:
如果您想保存8个更改一段时间(或者您不确定多久才能恢复它们),我建议您使用这种方法。您甚至可以将实验分支推送到上游存储库,以获得额外的冗余或在其上进行协作。
附注1
“实验/”和“特性/”名称空间是可选的,但我发现它们有助于未来的我了解过去的我在想什么。写一个 good commit message ,未来你会感谢过去的你:) 另一个选择是“暂时” stash “更改,然后将隐藏的更改重新应用到主分支(甚至其他分支)。 在您的情况下,我将保存更改(带有描述性消息),创建新的功能分支,然后稍后您可以回来将保存的更改应用于主功能:
藏匿有点复杂,但它可以相当灵活。创建分支的主要区别在于,存储只在本地;他们不能被推向上游。我只会推荐这个选项,如果你知道你需要额外的灵活性藏提供或如果藏只会非常短暂,基本上是一个快速剪切和粘贴。
附注1
默认情况下,存储只包括修改过的文件
以上假设你在此期间没有藏其他东西。使用
大西洋有一个 pretty useful tutorial on how to use git stash 如果你想了解更多。 另一个(稍微)复杂但灵活的选择是添加 working tree 在上面的场景中,我可能会基于master创建一个新的worktree(和分支),然后切换到新的worktree目录。您的未暂存更改将保留在主工作树中,您只需更改回该目录即可继续使用这些更改:
因为这允许您一次签出多个分支,所以它启用了一些非常好的工作流。例如,可以打开两个不同的终端和/或编辑器窗口/选项卡,并排查看两个分支。这是解决方案,我会选择任何除了非常短期的需要,我可能会使用藏。 使用此选项还可以创建一个新分支。这基本上是选项1的特例。
附注2
不能在两个不同的工作树中激活同一个分支。如果出于某种原因需要,则需要复制分支或运行与分离的第二个分支
以上命令将在当前存储库的同一级别创建一个新文件夹“app name bar”。因此,假设您的应用程序名为“todos”,那么您将在文件系统中得到另一个名为“todos bar”的“todos”副本(尽管您可以随意调用它)。为了使事情井然有序,我更喜欢为我的所有工作树文件夹创建一个包含文件夹。以下步骤说明如何将当前存储库从todos移动并重命名为todos/main,以便可以在主工作树旁边放置一个或多个其他链接的工作树:
|
![]() |
Jim · 从另一个分支获取文件的内容,而无需将其签出 7 年前 |
![]() |
kagarlickij · 生成定义的VSTS生成编号 7 年前 |
![]() |
staad · 多个孤立分支或独立存储库-git 7 年前 |
![]() |
BoffinBrain · 如何删减回购历史的特定部分以消除膨胀 7 年前 |
![]() |
herve-guerin · 如何读取git分支的当前上游 7 年前 |
![]() |
Bludzee · 为什么Git毫无怨言地签出这个被删除的分支? 7 年前 |
![]() |
vaheeds · Git从现有远程分支添加工作树 7 年前 |