我一直在开发2台设备。
当我需要出去使用我的笔记本电脑时,我通常会做的是大规模阶段我的待定更改,提交它们并推送它们以便我可以稍后从我的笔记本电脑上取下来恢复开发。
然而,显然,只是进行一系列随机更改并将其推送到一揽子提交中是一种不好的做法。
有没有办法在另一台设备上推送一个git stash,拉出存储,并让所有阶段仍待处理。
在您推送的临时分支上执行提交不会破坏任何Git习语。您可以稍后清理提交消息等。
如果您使用实际提交进行设置,则可以存储然后以补丁格式保存存储。
git stash #stash everything
git stash show -p > stash.diff #save patch-formatted stash to file
然后你只需要将stash.diff
文件放到第二台机器上并执行git apply stash.diff
。
如果你一个人在分支机构并且不必与同事分享其历史,我建议使用临时提交:
从机器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的有用优化。
我会说你的问题的前提是不正确的:
显然,仅仅进行一系列随机更改并将其推送到一揽子提交中是一种不好的做法
不,不是。将所有更改分阶段转换为一揽子提交,并在另一台计算机上检索它们。
两点意见: