如何在源头保存WIP更改?

时间:2019-05-17 06:31:32

标签: git

我在家和办公室里工作。当尚未准备好要提交更改时,我想保存它们,然后在家取回,反之亦然。为此,我从开发创建了一个WIP(进行中)分支。该分支的所有提交均带有消息“ WIP”。准备好要提交的工作时,我会结帐并进行

git merge --no-commit --squash WIP
git reset HEAD

,并通过告知提交消息开始进行适当的提交。

您如何处理要在工作场所之间共享的进行中的工作?

备注:这个想法来自Applying the changes from branch b to a, without merging or adding commits

1 个答案:

答案 0 :(得分:2)

在git中,我们没有存储在远程的存储。相反,我们使用分支来完成这项工作。与某些TCS等VCS不同,在git中创建分支是非常便宜的操作。

如果您正在开发中并且有一些工作正在进行中,则可以从开发中创建一个新分支,在新分支中提交WIP更改并将新分支推送到远程。

每当您想在另一个工作地点进行WIP更改时,您都从远程拉出,而新分支将在您本地。您可以结帐并重新开始工作!

完成工作后,您可以从WIP分支提出PR以进行开发,也可以只与WIP分支合并/重新建立基础。

关于交互式基础的注释:

如果您在WIP分支上有多个带有提交消息“ WIP”的提交,则可以摆脱它们,并通过有意义的提交消息进行单个提交[Squash Operation]。您可以通过在新分支上进行交互式重新部署来实现此目的。

假设您在WIP分支上,并且有5个WIP提交,以进行交互式变基, git rebase -i HEAD〜5

然后,在出现的下一个窗口中,将显示它。

pick a5
pick a4
pick a3
pick a2
pick a1

你可以说

squash a5
squash a4
squash a3
squash a2
pick a1

这将导致从a5到a1的提交被压缩为一个单独的新提交a1。重新设置窗口将再次要求您提供提交消息,然后您可以在其中提供提交消息。

完成此练习后,您将在WIP分支中只有一个提交,现在您可以将该分支与developer合并。