GIT更新分叉项目保留我自己的更改

GIT更新分叉项目保留我自己的更改,git,repository,git-clone,git-fork,Git,Repository,Git Clone,Git Fork,我是GIT的新手,我很难弄明白这一点。我已经搜索过这个话题,但我发现的一切都与我的问题不完全相关 事情是这样的:假设有一个在线存储库,我使用fork(或克隆,不确定是否有任何区别),然后在本地对不同的文件进行自己的更改,添加其他文件,删除一些文件,等等 我不想将这些更改推送到原始回购协议中。我想要的是,如果原始回购协议发生更改,我可以用这些更改更新我的fork/clone,然后将我自己的更改再次应用到更新的vesion上 我在网上找到的所有东西都在谈论这一点,但最终目标始终是将本地更改推送到原始

我是GIT的新手,我很难弄明白这一点。我已经搜索过这个话题,但我发现的一切都与我的问题不完全相关

事情是这样的:假设有一个在线存储库,我使用fork(或克隆,不确定是否有任何区别),然后在本地对不同的文件进行自己的更改,添加其他文件,删除一些文件,等等

我不想将这些更改推送到原始回购协议中。我想要的是,如果原始回购协议发生更改,我可以用这些更改更新我的fork/clone,然后将我自己的更改再次应用到更新的vesion上

我在网上找到的所有东西都在谈论这一点,但最终目标始终是将本地更改推送到原始存储库,所以这对我来说不起作用


实现我上面解释的目标的策略是什么?

Fork是正确的方法:它在服务器端克隆repo,允许您拥有自己的副本(您可以推送到)

这适用于GitHub或

克隆后,使用原始回购的更新更新您的fork必须首先通过本地克隆。
这意味着更新是在本地回购协议上完成的,并推到您的分支上(不能直接在您的分支上完成)

该本地克隆可以声明2个远程:

  • 其中一种称为“上游”,指的是原始回购协议
  • 一个叫做“
    origin
    ”,指的是你的在线叉子
关键是获取
上游
,并在
上游/master
上重新设置本地分支的基础

更多信息请参见“”。

非常感谢您的回复。我现在不使用github,我使用bitbucket是因为我处理私人项目,但我认为策略应该是相同的。据我所知,首先我需要在我的在线回购中创建原始项目的克隆,然后将“副本”克隆到我的本地机器中。是这样吗?@Albert Everything适用于像GitHub一样的BitBucket:你可以在BitBucket上分叉一个repo,然后像在GitHub上一样克隆它。@Albert所以,首先分叉这个repo(它是在GitHub或BitBicket端完成的,我已经包含了一个到BitBucket文档的链接)。然后在你的电脑上克隆这个叉子。然后将遥控器添加到本地回购协议中。是的,我想,那么我之前的评论呢?如果这是正确的,基本上我会将本地克隆的更改推送到在线克隆,并从原始repo获取原始项目中的任何更改,诸如此类,对吗?@Albert这确实是我在文章中描述的