克隆 Git 存储库,以便我可以将其更新为原始版本,但将我的更改分开

jre*_*121 4 git phpbb bitbucket git-clone git-fork

对于任何滥用 git 术语的行为,我提前道歉......

我有一个现有的 phpbb 站点。我想克隆他们的 repo,应用我的更改,并创建我自己的 repo,这样我就可以在他们制作它们时应用来自原始 phpbb master 分支的更新,所以我可以维护我自己的自定义。我只是不完全确定我应该按照什么顺序执行此操作。我什至不确定我想做的是一个叉子吗?

我想要的是:

  • 能够根据我的判断从 phpbb 主分支更新我的站点。
  • 让我的 repo 私有(使用 bitbucket)。

我知道他们主分支中的文件我需要更改以使站点成为我自己的站点。所以这就是我认为它应该如何工作,尽管它可能不会,因为我永远不会在不寻求帮助的情况下正确处理这些东西:

  • 将 phpbb 克隆到我的本地机器
  • 应用我当前的更改
  • 在 BitBucket 上创建一个新的 repo
  • 这就是我感到困惑的地方 - 我知道我需要对远程/原始存储库做一些事情,但是如果您如何执行标准的 fork/pull 或克隆,则可以获得大多数指南 - 尽管我希望我的代码可能被更新起源,但我从不想更新他们的原始代码。

我有一个开发、几个测试和一个生产机器,所以我想要一种更简单的方法来使所有这些代码保持最新。

wil*_*l93 5

通常要做的是保留两个遥控器:(origin您的私人叉子)和upstream(真正的)。

  1. 创建您的私人分叉并克隆它(它将是空的)
  2. 添加“真实的”: git remote add upstream <url-of-the-real-one>
  3. 下载上游提交: git fetch upstream
  4. 强制应用上游提交: git reset --hard upstream/master
  5. 现在您的本地存储库不再是空的。将提交推送到origingit push
  6. 应用您的本地编辑,git commit他们和git push他们

现在,如果upstream/master分支发生变化,您需要:

  1. 再次下载更新的提交: git fetch upstream
  2. upstream/master分支合并到本地master分支:git merge upstream/master
  3. 如果第 2 步产生冲突,您应该解决它们
  4. 更新您的私人分叉: git push