第三方项目不在GIT中-新版本-保留我的更改

第三方项目不在GIT中-新版本-保留我的更改,git,conflict,Git,Conflict,我从Codecanyon购买了一些代码(许可),这些代码没有在GIT中维护。 我现在对它做了很多修改(使用GIT)。 很快,原始代码的作者将发布一个新版本。 我希望在不失去自己的基础上融入他们的变化。 因此,我希望加载他们的代码,让GIT指出冲突,以便(希望)将新代码合并到我的代码中。 有谁能推荐一种安全的方法来实现这一点吗? 谢谢。将git与非git项目混合在一起并不好,也许这是基于观点的,但我会这么做: 创建一个git回购,将第三方代码放入其中并进行第一次提交(这将是您的master或mai

我从Codecanyon购买了一些代码(许可),这些代码没有在GIT中维护。 我现在对它做了很多修改(使用GIT)。 很快,原始代码的作者将发布一个新版本。 我希望在不失去自己的基础上融入他们的变化。 因此,我希望加载他们的代码,让GIT指出冲突,以便(希望)将新代码合并到我的代码中。 有谁能推荐一种安全的方法来实现这一点吗?
谢谢。

将git与非git项目混合在一起并不好,也许这是基于观点的,但我会这么做:

  • 创建一个git回购,将第三方代码放入其中并进行第一次提交(这将是您的
    master
    main
    分支
  • 创建新分支
    下一步
    (选择名称)
  • 对该分支进行修改,定期提交,并在它们正常工作时将它们合并到
    master
  • 当您的第三方项目有一个新版本时,确保所有修改都在您的
    主版本中,然后创建一个分支
    第三方
    ,并用新版本替换其内容(这就是它变得丑陋的地方)
  • 提交此更改
  • 然后您有两个选项a)将
    thirdParty
    master
    合并,或b)将
    master
    thirdParty
    合并。这可能是非常混乱的考虑到他们的修改必须是巨大的,所以我选择b)
  • Git将打印所有冲突,您将解决它们:)

  • 如果您在本地回购协议中提交了其代码的第一个版本:

    $ git log --graph --oneline
    1234ee * (HEAD -> master) my latest changes 
    1234dd * added a feature
      ...
    1234aa * a commit, with the initial version of the product's code
      ...
    
    你可以:

    • 创建从该提交开始的分支:
    • 使用新版本更新代码:
    • 您现在可以在本地分支中合并上游
    git checkout -b upstream 1234aa
    
    # to be thorough : you should delete files which existed in the first version,
    # and do not exist in the new version
    git rm -- [list all files of original archive]
    
    # for example, here is one way to drop all versioned files :
    git rm -- "*"
    
    # extract the files from the new version :
    tar -xzf newversion.tgz
    
    # add and commit :
    git add .
    git commit -m "new version"
    
    git checkout master
    git merge upstream