切换分支而不提交工作代码

时间:2016-02-25 10:11:48

标签: git

我正在使用git作为源代码存储库,并且当前代码处于凌乱状态,并希望切换到其他分支以进行一些工作。问题是我不想仅仅做半完成的工作,所以我怎样才能在以后回到这一点。

6 个答案:

答案 0 :(得分:7)

您可以使用git stash来"丢弃"更改一段时间,然后,当您要恢复以前的更改时,请使用git stash pop *

您也可以(并且更安全)提交您的WIP(正在进行中)工作,切换到另一个分支,完成您的工作,切换回原始分支,完成原始工作,然后squash您的提交之一。
请记住,提交并不等于推送,因此您可以在本地创建一个混乱的历史记录,但是,一旦变形和压制,您(和您的团队)将只能看到干净的版本。

*请注意,因为如果你藏匿多次,git pop将只会弹出最后一个藏匿点。在这种情况下,您需要使用git pop stash@{<revision>}

答案 1 :(得分:3)

如果你有更新的git(&gt; = ver.2.5.0),你可以使用 git worktree

通过以下命令,您可以签出要使用的临时工作树。

  

git worktree add sourcetree_dir branch_name

完成此分支的工作后,您可以使用以下命令将其删除。

  

git worktree prune

答案 2 :(得分:2)

您有两种方法可以做到这一点。

选项1: - 为工作代码创建补丁并检查所有工作代码然后切换到另一个分支。

选项2: - 您可以存储分支机构。点击此处了解更多详细示例:http://www.gitguys.com/topics/temporarily-stashing-your-work/

答案 3 :(得分:1)

你可以藏匿你的分支机构。这是一个例子: http://www.gitguys.com/topics/temporarily-stashing-your-work/

答案 4 :(得分:0)

你不能只创建另一个目录并将所需的分支克隆到其中吗?

如果您将运行时配置为使用特定目录,请将其作为指向您当前使用的分支克隆目录的链接。这样,您可以在本地拥有多个分支,而无需对本地资源进行大量重新调整(只需要一个简单的脚本来重新链接运行时/服务器使用的目录)。

答案 5 :(得分:0)

使用命令行,简答:

git stash
git checkout otherBranch

如果brach在原产地使用:

git checkout origin otherBranch

..
do your changes/commits
..
git stash apply

使用git stash apply,您可以恢复以前的更改。您可以找到合并冲突...修复它们并再次提交。