我曾经非常愚蠢,并不知道叉子和克隆是如何工作的。因此,为了处理其他人的github repo,我下载了repo的文件(不使用SC),创建了我自己的新存储库,然后将这些文件提交给它。
现在我知道我应该从原始项目开始使用fork,但是如果我打开一个新的fork,将所有filse从我的私有repo复制粘贴到新的fork并提交,它将显示它作为一个巨大的承诺,我将失去旧回购的所有评论历史,这将是可怕的。
这是我以某种方式打开叉子的方式,并且"重做"我对本地新仓库所做的所有提交 - 所以他们会像在叉子上做的那样表现出来吗?有点像rebase,但是在项目而不是分支之间。
答案 0 :(得分:2)
可能最好的方法是通过单击Fork按钮正常分叉存储库,然后将现有本地克隆上的origin
远程URL设置为fork的URL。
我会说确保在最初克隆它的提交中分配repo,但GitHub只允许你分叉当前的HEAD。因此,在这种情况下,我建议您从新的分叉原点进行rebase。
这样的事情:
you@your-machine ~/path/to/existing_repo $
git remote add origin git@github.com:you/your-forked-repo
git pull origin master --rebase
答案 1 :(得分:0)
TL; DR git rebase
可能是工作的工具
以下是我建议的步骤:
在GitHub上创建一个fork。复制它的网址,我将其称为FORK_URL
。
为fork创建一个遥控器:
$ git remote add origin FORK_URL
创建一个新分支并删除当前的主分部:
$ git checkout master
$ git branch my_changes
$ git checkout my_changes
$ git branch -D master
从原点获取提交和分支并签出其主文件:
$ git fetch origin
$ git checkout -b master origin/master
将您的更改重新定位到原始master
:
$ git checkout my_changes
$ git rebase master
OR
你可以做Xavier所说的,它基本上只是用一个命令写的所有内容。