Git 将您的项目基于另一个项目

Git 将您的项目基于另一个项目,git,Git,我试图将我的项目A建立在第三方项目B的基础上A将更改B的两个文件并添加更多文件。最后,我想从原始回购协议中获得新版本的B,并将其与a相结合,保留我对它的所有更改 我试图通过创建一个分支source来实现这一点,在那里我加入了香草B和它的所有未来版本。然后将它与master合并,手动解决上面提到的两个文件的合并冲突,一切都会好起来,或者我是这么想的。玩弄它,我为每个分支创建了两个不同的README.md文件,在将source合并到master之后,我发现source的README.md也发生了变化

我试图将我的项目
A
建立在第三方项目
B
的基础上
A
将更改
B
的两个文件并添加更多文件。最后,我想从原始回购协议中获得新版本的
B
,并将其与
a
相结合,保留我对它的所有更改

我试图通过创建一个分支
source
来实现这一点,在那里我加入了香草
B
和它的所有未来版本。然后将它与
master
合并,手动解决上面提到的两个文件的合并冲突,一切都会好起来,或者我是这么想的。玩弄它,我为每个分支创建了两个不同的
README.md
文件,在将
source
合并到
master
之后,我发现
source
README.md
也发生了变化。显然我根本上误解了什么

考虑到这有多普遍,必须有一个简单和git初学者友好的方法来做到这一点?当我在谷歌上搜索它时,我发现的只是如何拉取请求并将它们提交给原始回购协议,但我不打算为
B
,而是制作我自己的版本


所以,我要明确的是,我的问题不是如何直接让我的尝试成功,而是如何构建我在第一段中描述的内容

有多种方法可以解决您遇到的问题。最简单的方法是遵循以下步骤:

  • 制作存储库
    B
    fork
  • 将分叉存储库克隆到本地计算机
  • 在本地计算机上,向当前存储库添加第二个远程服务器:
    git remote add upstreamgit@github.com:USERNAME/PROJECT_B_REPOSITORY.git
  • 不时地将更改从远程B拉到本地存储库
    git向上游拉
    解决冲突并推送到
    origin
    (即project
    A
    远程)

  • 这里是了解“最佳实践”的好地方,因为实践往往是有问题的。@MateuszChrzaszcz在参考其他网站时,指出这一点通常是有帮助的。另外,你的网站推荐看起来并不吸引人,请参阅@gnat我同意关于交叉发布的建议-这一点也不需要说。但是,以前这个问题的标题是“基于(…)的最佳实践”,每当涉及实践(例如“干净代码”问题)时,建议将讨论转移到softwareengineering.stackexchange。com@MateuszChrzaszcz恐怕之前的头衔没能让它更适合那里,看看我发现的一些东西,其他git初学者在考虑选择这种方法时可能会觉得很方便:你不需要删除
    B
    的文件,在加入新版本的
    B
    之后,你的项目
    A
    就不需要了。吉特有头脑。