在github上追溯分发项目

时间:2018-01-05 20:13:29

标签: git github

我曾经非常愚蠢,并不知道叉子和克隆是如何工作的。因此,为了处理其他人的github repo,我下载了repo的文件(不使用SC),创建了我自己的新存储库,然后将这些文件提交给它。

现在我知道我应该从原始项目开始使用fork,但是如果我打开一个新的fork,将所有filse从我的私有repo复制粘贴到新的fork并提交,它将显示它作为一个巨大的承诺,我将失去旧回购的所有评论历史,这将是可怕的。

这是我以某种方式打开叉子的方式,并且"重做"我对本地新仓库所做的所有提交 - 所以他们会像在叉子上做的那样表现出来吗?有点像rebase,但是在项目而不是分支之间。

2 个答案:

答案 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可能是工作的工具

以下是我建议的步骤:

  1. 在GitHub上创建一个fork。复制它的网址,我将其称为FORK_URL

  2. 为fork创建一个遥控器:

    $ git remote add origin FORK_URL
    
  3. 创建一个新分支并删除当前的主分部:

    $ git checkout master
    $ git branch my_changes
    $ git checkout my_changes
    $ git branch -D master
    
  4. 从原点获取提交和分支并签出其主文件:

    $ git fetch origin
    $ git checkout -b master origin/master
    
  5. 将您的更改重新定位到原始master

    $ git checkout my_changes
    $ git rebase master
    
  6. OR

    你可以做Xavier所说的,它基本上只是用一个命令写的所有内容。