我正在从事一个软件项目
我用git / github。
我目前是唯一的开发商
我通常在家里和工作场所工作
在开始任何会话之前,我执行git pull
,完成后git add . -A && git commit -m "my commit message" && git push --tags origin master
(我有一个 gitaddcommitpush 别名)。
昨天,在工作会议结束后,我忘了 gitaddcommitpush ,从家里:-(
当我意识到这一点时This是我的反应:-(
现在,问题是:
我应该执行哪些操作才能在今天工作(在项目的不同部分,而不是昨天在家工作),明天@home可以合并我的更改昨天(从家里)和今天(从工作)?
答案 0 :(得分:2)
由于您一直保持着良好的线性Git工作流程,因此我建议您使用变基来保持原样。
您可以像往常一样在办公室工作,并投入工作。当你回到家工作时,你可以做一个git pull --rebase
来引入工作中的变化。您的本地分支将通过一个或多个提交位于远程版本的后面。重新定位将使您的家庭分支看起来好像您在今天的办公室工作之前实际做了昨晚的工作。在家中采取以下步骤:
git commit -m 'Changes from last night which I forgot'
git pull --rebase origin master
可能存在冲突,但如果您真的在办公室完全独立于项目部分工作,则不太可能。
这是一个图表,显示您的家庭和远程master
分支的状态将在您从昨晚在家工作后:
remote: A --- B --- C
\
local: D
这里,提交C
是您今天在工作中提交的提交,提交D
是您今晚要做的提交(昨晚的工作)。现在执行git pull --rebase origin master
之后,图表将如下所示:
remote: A --- B --- C
\
local: D'
当您git push
进行更改时,远程服务器将在工作结束时收到一个新的提交。当你明天去上班时,事情将会继续下去。