克隆Git repo所以我可以保持更新原始版本,但保持我的更改分开

时间:2016-01-03 08:56:23

标签: git bitbucket phpbb git-clone git-fork

我对任何滥用git术语的事先道歉......

我有一个现有的phpbb网站。我想克隆他们的repo,应用我的更改,并创建我自己的repo,这样我可以在创建原始phpbb master分支时应用更新,因此我可以维护自己的自定义。我还不完全确定我应该这样做的顺序。我甚至不确定我想做的是叉子吗?

我想要的是什么:

  • 我可以自行决定从phpbb master分支更新我的网站。
  • 让我的回购私有(使用bitbucket)。

我知道他们的主分支中的文件我需要更改以使该网站成为我自己的。所以,我认为它应该如何运作,虽然它可能不会因为我没有先得到帮助而没有得到这些东西:

  • 将phpbb克隆到我的本地计算机
  • 应用我当前的更改
  • 在BitBucket上创建一个新的回购
  • 在这里,我感到很困惑 - 我知道我需要对远程/原始回购做一些事情,但是大多数指南都可用于你如何进行标准的分叉/拉动或克隆 - 尽管我希望我的代码可能由原点更新,但我从不想更新原始代码。

我有一个开发人员,多个测试人员和一个prod机器,因此我想要一种更简单的方法来保持所有这些代码的最新状态。

1 个答案:

答案 0 :(得分:1)

通常要做的就是保留两个遥控器:origin(你的私人分叉)和upstream(真实的)。

  1. 创建您的私有分叉并克隆它(它将为空)
  2. 添加&#34;真实的&#34;:git remote add upstream <url-of-the-real-one>
  3. 下载上游提交:git fetch upstream
  4. 强制应用上游提交:git reset --hard upstream/master
  5. 现在您的本地存储库不再为空。将提交推送到origingit push
  6. 应用您的本地修改,git commitgit push
  7. 现在,如果upstream/master分支发生变化,您需要:

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