忘记推送提交

Mar*_*coS 5 git github

我正在开发一个软件项目。
我使用 git/github。
我是目前唯一的开发者。
我通常在家里和工作地点工作。
在开始任何会话之前,我会执行 a git pull,完成后执行 a git add . -A && git commit -m "my commit message" && git push --tags origin master(我为此有一个gitaddcommitpush别名)。
昨天,工作会议结束后,我忘记了在家中执行gitaddcommitpush :-(
是我意识到这一点时的反应 :-(
现在,问题是:

我应该执行哪些操作才能今天在工作中工作(当然,在项目的不同部分,而不是我昨天在家工作),以便明天@home 能够合并我昨天(在家)的更改今天(下班)?

Tim*_*sen 4

由于您一直在维护良好的线性 Git 工作流程,因此我建议您使用变基来保持现状。

今天你可以像往常一样在办公室工作,并投入你的工作。当您回到家工作时,您可以做一些事情git pull --rebase来带来工作中的变化。您的本地分支将落后于远程版本一次或多次提交。变基将使您的家庭分支看起来就像您在今天的办公室工作之上实际上完成了昨晚的工作一样。在家中采取以下步骤:

git commit -m 'Changes from last night which I forgot'
git pull --rebase origin master
Run Code Online (Sandbox Code Playgroud)

这可能会产生冲突,但如果您确实在办公室中处理项目的完全独立的部分,则不太可能发生。

下面的图表显示了您从昨晚在家提交工作后,master您的家庭和远程分支的状态:

remote: A --- B --- C
                 \
local:              D
Run Code Online (Sandbox Code Playgroud)

在这里,commitC是您今天工作中所做的提交,commitD是您今晚将进行的提交(针对昨晚的工作)。完成后,git pull --rebase origin master图表将如下所示:

remote: A --- B --- C
                     \
local:                D'
Run Code Online (Sandbox Code Playgroud)

当您git push进行更改时,远程设备将在工作中收到一个新的提交。当你明天去上班时,一切都会像以前一样继续下去。