Git:在处理该项目的克隆后创建项目的分支
Git: create fork of project after having worked on a clone of that project
我目前正在做一个项目,我在其中拥有报告权(不允许推送等)。不幸的是,我没有创建一个分支,而是在我的机器上克隆了原来的分支,现在我正在为如何发布它以获得反馈而苦苦思索。
由于我无法推送到原始存储库,我想我可以创建一个新存储库并更改远程,但在我看来,我将失去与原始存储库的连接并且无法拉取不再更新更改。设置不同的推送遥控器和不同的拉遥控器是否足以解决这个问题?
在我的案例中,应该遵循的合理方案是什么?
从原始项目的分支开始工作将是最好的策略,因为它可以让您轻松地向它提交 PR(拉取请求)。所以最好还是回到这个经典的贡献设置:
复刻原始项目
将此分支设置为您计算机上的项目的 remote
(您从原始项目制作的克隆并在其中工作)
cd <path-to-your-local-repository>
git remote add origin <address-of-your-fork>
- 获取该分支的内容(以获取自您克隆原始项目以来在原始项目中所做的更新)
git fetch
- 将您获取的内容与本地项目合并
git merge origin/master
请注意,第 3 步和第 4 步可以通过一个命令完成:git pull
。
- 推送到原点(这会将您的本地工作推送到您的分支)
git push -u origin master
(如果您在分支机构工作,请将 master
替换为您分支机构的名称)。
- 将原始项目设置为
upstream
(以便您可以提取或获取更改以使您的复刻与原始项目保持同步)
git remote add upstream <address-of-original-project>
现在你可以推送到你的分支(反馈),你可以从原始项目中拉取或获取(保持最新),你可以轻松地向原始项目提交 PR。
我目前正在做一个项目,我在其中拥有报告权(不允许推送等)。不幸的是,我没有创建一个分支,而是在我的机器上克隆了原来的分支,现在我正在为如何发布它以获得反馈而苦苦思索。
由于我无法推送到原始存储库,我想我可以创建一个新存储库并更改远程,但在我看来,我将失去与原始存储库的连接并且无法拉取不再更新更改。设置不同的推送遥控器和不同的拉遥控器是否足以解决这个问题?
在我的案例中,应该遵循的合理方案是什么?
从原始项目的分支开始工作将是最好的策略,因为它可以让您轻松地向它提交 PR(拉取请求)。所以最好还是回到这个经典的贡献设置:
复刻原始项目
将此分支设置为您计算机上的项目的
remote
(您从原始项目制作的克隆并在其中工作)
cd <path-to-your-local-repository>
git remote add origin <address-of-your-fork>
- 获取该分支的内容(以获取自您克隆原始项目以来在原始项目中所做的更新)
git fetch
- 将您获取的内容与本地项目合并
git merge origin/master
请注意,第 3 步和第 4 步可以通过一个命令完成:git pull
。
- 推送到原点(这会将您的本地工作推送到您的分支)
git push -u origin master
(如果您在分支机构工作,请将 master
替换为您分支机构的名称)。
- 将原始项目设置为
upstream
(以便您可以提取或获取更改以使您的复刻与原始项目保持同步)
git remote add upstream <address-of-original-project>
现在你可以推送到你的分支(反馈),你可以从原始项目中拉取或获取(保持最新),你可以轻松地向原始项目提交 PR。