git - 如何为您 fork 的项目做出贡献?

标签 git github

假设我已经 fork https://github.com/user/proj.git并在我的分支(的主分支)上进行了重大开发。

我想解决上游遇到的问题(我尚未在我的 fork 中修复)。如果我理解正确,我应该在上游最后一次 checkin 其主节点的基础上创建一个功能分支:

git fetch upstream
git checkout upstream/master
git checkout -b my_new_feature

这些命令中的第二个让我知道我处于“分离头”状态..这是我需要关心的事情(了解执行此任务)吗?

现在我进行更改,然后 git addgit commit 更改的文件,然后 git Push 到 github,但是当我创建时 pull 请求 我被告知我的 pull 请求无法自动 merge ,因为我所做的更改与我完成后 checkin upstream/master 的更改之间存在冲突git fetch

冲突的更改在语义上是等效的,因此我想遵循 upstream/master 的版本。在解决冲突时,如何将我的 pull 请求从 upstream/master rebase (这就是我想做的,对吧?)? (我精通 Subversion,并且是 git 的新手,如果这有助于回答的话..)

最佳答案

is this pull request that is problematic, since it includes a conflict with changes done to upstream/master after I branched off of it

the steps needed to "provide him a proper rebased branch"?

“正确的重新基址分支”是指在 upstream/master 之上重新基址的分支(上游是您 fork 的原始存储库的名称)

git fetch upstream
git checkout myBranch
git rebase upstream/master

(我也在“Pull new updates from original Github repository into forked Github repository”中描述了该步骤)

如果你想清理一下分支的历史记录,你也可以进行 rebase 交互 (git rebase -i)

这样,您就可以解决本地克隆中的任何冲突,并git push --force 将您的分支推送到您的分支。
如果您已经有一个 PR( pull 请求)正在进行中,它将自行更新,以考虑您的重新定位分支的修订历史记录。

原始项目的维护者的目标仍然是将您的分支 merge 到他/她的主分支中,并通过简单的 merge (0冲突)来实现。

关于git - 如何为您 fork 的项目做出贡献?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27987983/

相关文章:

GitHub:将私有(private)存储库部分公开

Facebook 签名请求问题

git - 如果在 virtualenv 中运行 Git init/commit 会发生什么?

git - 使用原始源代码更新 Git 中的功能分支

Git:推送后删除提交的文件

git - 还原推送的 merge 后无法将主分支 merge 到功能分支

javascript - 在 Github 存储库中包含其他 CSS/JS 库的最佳方式?

r - 从 github 私有(private)存储库安装包,无需个人访问 token

windows - git : Self-made file has line-ending problems

svn - 谷歌代码 + SVN 或 GitHub + Git