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

标签 git bitbucket phpbb git-clone git-fork

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

我有一个现有的 phpbb 网站。我想克隆他们的 repo,应用我的更改,并创建我自己的 repo,这样我就可以在他们制作它们时应用来自原始 phpbb master 分支的更新,这样我就可以维护我自己的定制。我只是不完全确定我应该这样做的顺序。我什至不确定我想做的是不是一个 fork ?

我想要的:

  • 为了能够根据我的判断从 phpbb master 分支更新我的站点。
  • 让我的仓库私有(private)(使用 bitbucket)。

  • 我知道他们的主分支中的文件,我需要更改这些文件以使该站点成为我自己的站点。所以这就是我认为它应该如何工作,尽管它可能不会,因为如果不先寻求帮助,我永远不会把这些东西做好:
  • 将phpbb克隆到我的本地机器
  • 应用我当前的更改
  • 在 BitBucket
  • 上创建一个新的 repo
  • 这就是我感到困惑的地方-我知道我需要对远程/原始存储库做一些事情,但是如果您如何进行标准的 fork /pull 或克隆,大多数可用的指南-尽管我希望我的代码可能通过以下方式更新起源,但我从不想更新他们的原始代码。

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

    最佳答案

    通常的做法是保留两个 Remote :origin (您的私有(private) fork )和upstream (真实的)。

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

  • 现在,如果 upstream/master分支更改,您需要:
  • 再次下载更新的提交:git fetch upstream
  • merge upstream/master分支到您本地的master分公司:git merge upstream/master
  • 如果步骤 2 产生冲突,您应该 resolve them
  • 更新您的私有(private) fork :git push
  • 关于git - 克隆 Git 存储库,以便我可以将其更新为原始版本,但将我的更改分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34574841/

    相关文章:

    mercurial - 将带有子存储库的存储库推送到 bitbucket 时出现错误 "Repository is unrelated"

    javascript - 如何在我的 phpbb BBCode 中显示标记颜色代码

    android - 为什么 Git 有时会给我类似 "fatal: Unable to find remote helper for ' https' 的错误

    Git rebase --preserve-merges 失败

    git - 如何在 Mac OS 中设置 kdiff3?

    phpbb3 对新消息的缓慢索引

    phpBB 和 mySQL "Could not connect to the database..."

    java - 当 git push 到远程仓库时出现错误 "File java_pid66619.hprof is 661.61 MB; this exceeds GitHub' s 文件大小限制为 100.00 MB"

    git - Vagrant shell 和 ansible 配置因 bitbucket 失败

    intellij-idea - IntelliJ IDEA : How do I verify and/or change my BitBucket git credentials?