git - 忘记推送提交

标签 git github

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

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

最佳答案

由于您一直在维护良好的线性 Git 工作流程,我建议您使用 rebase 来保持原样。

您今天可以照常在办公室工作,然后投入工作。当您回到家工作时,您可以执行 git pull --rebase 以引入工作中的更改。您的本地分支将落后于远程版本一个或多个提交。 rebase 将使您的家庭分支机构看起来好像您实际上是在今天的办公室工作之上完成了昨晚的工作。在家采取以下步骤:

git commit -m 'Changes from last night which I forgot'
git pull --rebase origin master

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

这是一张图表,显示了从昨晚开始您在家中完成工作后您的家庭和远程 master 分支的状态:

remote: A --- B --- C
                 \
local:              D

在这里,commit C 是您今天在工作中所做的提交,commit D 是您今晚将要进行的提交(针对昨晚的工作)。现在,在你执行 git pull --rebase origin master 之后,图表将如下所示:

remote: A --- B --- C
                     \
local:                D'

当您git push 您的更改时,远程将收到一个新的提交,这是在它已经完成的工作之上。当你明天去上类时,一切都会像以前一样。

关于git - 忘记推送提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33823316/

相关文章:

reactjs - gh-pages -d 构建在 'npm run deploy' 上失败

git - bgf clean 不更新 pull 请求

git - 如何在 Git 的属性文件中提交和获取部分更改?

git - 如何诊断和修复 git fatal : unable to read tree

git - Azure 开发运营 : 1 Solution Multiple Projects CI/CD

github - 克隆时git连接超时

docker - 使用 secret 、操作和 PAT 的 Github 组织

git - .git/index.lock 文件实际上做了什么?

更新 Homebrew 软件 OS X 时的 Git 警告

git - gpg : skipped "XXBDXX4E": secret key not available. gpg:签名失败: key 不可用