4

让我看看我是否做对了,我是 Git 新手。

  1. 假设我在 GitHub 上创建了一个项目的分支并进行了一些更改。如果我要提交、推送和注册这些更改的拉取请求,它被认为是一种好的做法,即创建一个新的命名分支,其名称特定于我所做的任何事情。

  2. 因为如果我只是使用 master 然后将其他(不相关的)更改推送到我的 fork 上的 master ,它们将自动附加到拉取请求中。至少这就是我从使用拉取请求中理解以下内容的方式:

拉取请求可以从任何分支或提交发送,但建议使用主题分支,以便在必要时可以推送后续提交以更新拉取请求。

假设维护者接受了拉取请求。

  1. 如果我的主题分支被合并,我需要做的就是fetch从维护者仓库中恢复同步。

  2. 但是,如果主题分支被重新设置,历史已经被重写,并且fetch来自维护者的 repo 会给我一个主题分支的“副本”(至少这是它在 mercurial 中的工作方式)。

  3. 无论我的分支是合并还是重新设置分支(或者更确切地说是名称)都会被删除。使维护者存储库包含一个主分支。

4

1 回答 1

2

如果您将master不存在的内容发布到您的分支upstream/masterupstream作为官方 repo 的远程句柄),我建议您回滚master几个提交,然后重新合并upstream/master

>> git checkout master         # make sure we're on master
>> git branch oldmaster        # create a new branch, just to be safe
>> git reset --hard HEAD~100   # roll back 100 commits
>> git fetch upstream          # fetch newest changes from upstream
>> git merge upstream/master   # merge the main master branch into your local one

你最终应该得到你凌乱的 master 分支oldmastermaster.

于 2012-11-23T10:06:45.390 回答