我在家和办公室里工作。当尚未准备好要提交更改时,我想保存它们,然后在家取回,反之亦然。为此,我从开发创建了一个WIP(进行中)分支。该分支的所有提交均带有消息“ WIP”。准备好要提交的工作时,我会结帐并进行
git merge --no-commit --squash WIP
git reset HEAD
,并通过告知提交消息开始进行适当的提交。
您如何处理要在工作场所之间共享的进行中的工作?
备注:这个想法来自Applying the changes from branch b to a, without merging or adding commits
答案 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合并。