拉动时忽略Git提交。跳过提交并从最新提交继续

时间:2019-05-31 10:58:38

标签: git repository putty git-bash git-commit

我在存储库中两次推送了代码并将其拉到服务器上,它遇到了一些问题,因此我不得不返回并硬重置为先前的提交。我只能从上一次提交中获得更改吗?

我曾经回过头来提交'C'的命令

git reset --hard C

视觉表示:

承诺回购:

A-B-C-D-E-F

服务器端的git:

A-B-C'

在本地我只想推送提交'F'中的一些更改。现在我只想从提交'F'中提取更改,并跳过'D,E'。在服务器上,它告诉我我落后三个提交,并且在我拉时它会从所有提交中获取文件。我只希望在“ F”提交或任何其他最新提交中更新文件。

(对不起,英语不好)

2 个答案:

答案 0 :(得分:2)

要从F git cherry-pick origin/F中提取更改,则需要推出新更改。 git push -f origin。这将从服务器端的分支中删除D和E。

答案 1 :(得分:1)

git reset --hard HEAD~1

git push -f

(Example push: git push -f origin bugfix/bug123)

This will undo the last commit and push the updated history to the remote. You need to pass the -f because you're replacing upstream history in the remote.

And if you want revert or undo a no of commits let's say 3 then the command will change like

git reset --hard HEAD~3

git push -f

For more info