gpt4 book ai didi

git - 放弃 GitHub 上被拒绝的 pull 请求的 Git 提交

转载 作者:IT王子 更新时间:2023-10-29 01:28:44 33 4
gpt4 key购买 nike

我 fork 了某人的项目并做了一些提交。我填写了一个 pull request,但它没有被接受(要么更改不受欢迎,要么作者重写了功能以符合“他的风格”)。现在我被我的本地 fork 困住了,有一些额外的提交永远不会进入上游。我可以取消更改集,但是我有两倍多的额外提交并且将不得不永远拖延它们。太丑了!

放弃这些没人想要的提交并让我的分支回到上游跟踪的最佳方法是什么?我知道我可以完全删除 fork 并重新 fork 它,但这真的很笨拙,我会失去我正在做的任何其他工作。

最佳答案

您可以将您的 repo 状态重置为较早的提交。首先弄清楚你想将你的 repo 重置为哪个提交:

git log

要将您的存储库重置为该状态:

git reset --hard <commit_hash>

如果您有一个 fork 的远程仓库,您可以将这些更改推回给它:

git push -f <remote> <branch>

尽管如此,您可能希望更改工作流程以使将来的事情变得更容易。

当我 fork 一个存储库并对其进行自己的更改时,我首先设置了两个 Remote 。一个远程将指向我的 fork repo (例如:origin),并将另一个远程指向从 fork 的原始 repo (例如:original_repo)。所以我可能有类似的东西:

$ git remote
origin
original_repo

我创建了一个分支来完成我所有的工作,例如:feature。发出 pull 请求时,我从 feature 分支到 original_repo master 分支。如果 pull 请求被拒绝,就像你的例子一样,你可以放弃这个分支。如果您想进行更多修改,只需从 master 创建另一个分支并使用它来工作。

我也不会提交或 merge 任何本地更改到 master 分支。我只使用 master 分支与 original_repo master 分支同步。例如:

git checkout master
git fetch original_repo
git merge original_repo/master

这确保 master 分支始终与原始 repo 的 master 分支同步。例如,如果 pull 请求被接受并 merge ,当提取和 merge 发生时,本地 master 也将拥有原始 repo 中使用的所有“已批准”代码。

基本上使用 master 与原始 repo 的 master 同步,并在您想要进行编辑时始终从 master 分支。将这些分支用于对原始存储库的 pull 请求。

关于git - 放弃 GitHub 上被拒绝的 pull 请求的 Git 提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9538320/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com