如何使用非分段更改正确切换开发设备?

问题描述 投票:4回答:3

我一直在开发2台设备。

当我需要出去使用我的笔记本电脑时,我通常会做的是大规模阶段我的待定更改,提交它们并推送它们以便我可以稍后从我的笔记本电脑上取下来恢复开发。

然而,显然,只是进行一系列随机更改并将其推送到一揽子提交中是一种不好的做法。

有没有办法在另一台设备上推送一个git stash,拉出存储,并让所有阶段仍待处理。

git git-stash
3个回答
4
投票

在您推送的临时分支上执行提交不会破坏任何Git习语。您可以稍后清理提交消息等。

如果您使用实际提交进行设置,则可以存储然后以补丁格式保存存储。

git stash #stash everything
git stash show -p > stash.diff #save patch-formatted stash to file

然后你只需要将stash.diff文件放到第二台机器上并执行git apply stash.diff


3
投票

如果你一个人在分支机构并且不必与同事分享其历史,我建议使用临时提交:

从机器1,在您的分支机构:

# you have unfinished modifications to "save"
git commit -am "temp"
git push origin HEAD

从机器2,在您的分支机构:

# get your last commit like you usually do, let's say
git pull

# now let's "uncommit" the ugly temp
git reset HEAD^

(作为提醒,没有git reset--soft--hard使其成为默认的--mixed模式。它使得修改保存在工作树中,因此它只是设置为不同提交的分支指针)

此时,您有来自机器1的待定修改,准备进行进一步修改,添加并在您准备好时“正确”提交。


最后,正如你在评论中提出的那样,是的,当你想要反射回遥控器时,你必须强制推动(它仍然有你在本地销毁的临时提交,被你的替换)。

当然,感谢torek的有用优化。


1
投票

我会说你的问题的前提是不正确的:

显然,仅仅进行一系列随机更改并将其推送到一揽子提交中是一种不好的做法

不,不是。将所有更改分阶段转换为一揽子提交,并在另一台计算机上检索它们。

两点意见:

  • 由于没有时间把它全部整理成一个可爱的合理化历史,因此害怕将所有事情整合在一起,这是工作流程中的恶劣气味。提前和经常提交!以后有时间在post-production排序。
  • 如果担心以后重写历史是反模式,因为此分支与存储库中的其他人共享,则不要与存储库中的其他人共享此分支。如有必要,在另一个遥控器上跟踪此分支。我就是做这个的;我在github上公开我的工作,但只是在我在bitbucket上私下配置了所有内容后,bitbucket的分支永远不会被推送到github。
© www.soinside.com 2019 - 2024. All rights reserved.