如何使GitHub仓库与原始分叉仓库相同?

3
说起来,我在GitHub上看到了一些样例项目,想要尝试一下。如果我从那个 repo 开始 fork 并且使用 git clone 命令将新 repo 克隆到我的硬盘,然后进行更改并执行 git push 命令,一切都很好。
我们称上述情况为“场景1”。
但是如果我没有 fork 而只是使用 git clone 命令克隆原始 repo。现在已经更改了 5 小时的项目文件,执行了 git addgit commit 命令,如何回到场景1(就像我从新 fork 的 repo 中克隆出来的一样)?在 GitHub 上,它也应该显示该 repo 是从原始 repo fork 出来的。如果可能的话,所有 5 小时的更改和提交历史记录也应该被保留。
2个回答

3

首先像平常一样fork GitHub仓库。然后在您的本地机器上打开Git Bash并cd到克隆版本的仓库所在目录。您可以使用以下命令更改origin远程的URL:

$ git remote set-url origin <url for the forked repo>

为了保持与原始仓库的连接,您可以将其添加为具有不同名称的远程仓库:

$ git remote add upstream <url for original repo>

1
谢谢...我的意思是在重复了5个小时的(文件编辑+git add + git commit)之后。 - nonopolarity

0

在事后fork它,然后使用新fork的远程url添加一个远程仓库:

git remote add myremote git@github.com:some/something.git

之后,您可以将您的提交推送到您的分支:

git push myremote my-branch

如果你想把你的新远程变成主干,你应该先将原始的主干重命名为其他名称:

git remote rename origin something_different
git remote add origin git@github.com:some/something.git

我能否将它设置为“origin”?(以及如何...)这样一来,所有的东西都像我从新仓库 git clone 一样,并且“git push”只需将内容推送到新仓库即可完成工作。 - nonopolarity
1
你可以使用类似于 git branch -u myremote/my-branch 的命令来设置当前分支的默认推送/拉取目标。有关更多信息,请参阅 git branch --help。太极者无极而生。 - Dolda2000
git remote rename origin something_different 然后 git remote add origin git@github.com:your/remote.git。太极者无极而生。 - rthbound

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接