Git 如何管理可以';我们不能向上游推进吗?

Git 如何管理可以';我们不能向上游推进吗?,git,open-source,linux-kernel,kernel,patch,Git,Open Source,Linux Kernel,Kernel,Patch,我在做一个开源项目。现在我完成了一些与公司业务相关的补丁,我无法将这些补丁推到上游 因此,我必须在本地git存储库中保留这些补丁。我必须从上游提取新补丁,并解决与我的补丁的冲突 谁有我类似的经验,如何轻松地使用它 更新: 就像我有几个补丁不能被Linux内核接受一样,因为这些补丁对内核不友好。我必须每天构建内核,我不想每天手工打字。是否有任何工具可以帮助我?在对项目进行更改之前,请先执行此操作- 1. create a branch 2. Change to that branch fo

我在做一个开源项目。现在我完成了一些与公司业务相关的补丁,我无法将这些补丁推到上游

因此,我必须在本地git存储库中保留这些补丁。我必须从上游提取新补丁,并解决与我的补丁的冲突

谁有我类似的经验,如何轻松地使用它

更新:
就像我有几个补丁不能被Linux内核接受一样,因为这些补丁对内核不友好。我必须每天构建内核,我不想每天手工打字。是否有任何工具可以帮助我?

在对项目进行更改之前,请先执行此操作-

  1. create a branch
  2. Change to that branch for any changes you make
  3. To pull the new patches from the upstream revert back to the master branch and then git pull.
创建分支和更改的命令如下所示

1. $ git branch <branch name>           // To create a new branch
2. $ git checkout <branch name>         // To change to the branch
3. $ git checkout master                // To change to the master branch
1.$git branch//创建新分支
2. $ git checkout//更改为分支
3. $ git checkout master//更改为master分支
我在做一个开源项目。现在我完成了一些与公司业务相关的补丁,我无法将这些补丁推到上游

如果你正在用Git合作一个项目,特别是如果它是开源的,人们可能不会让你把你想要的东西推到上游回购。您可能希望在请求中提交更改,或者通过电子邮件将修补程序发送给某个项目经理

您可以从以下章节中阅读更多关于在Git中与其他人协作的信息:


  • 如果您感兴趣,也可以阅读。

    我有点惊讶,到目前为止的答案似乎没有考虑到两件事:

  • 并非程序员所做的所有修改都是为了或适合提交给开源项目
  • 即使是这样,如果您在处理代码时对存储库进行了更新,您也经常希望将这些更改合并到您的工作副本中
  • 好的一面是,由于您使用的是一个像样的版本控制软件,所以通常不难做到您所需要的。我是一个颠覆者(由于公司的政策),所以我并不特别了解GIT,但在阅读之后,它看起来几乎是一样的。只要将文件放入本地存储库中,就不必再次应用修补程序。您可以使用已应用的修补程序更新本地副本

    您的自定义代码可能只涉及存储库代码的一小部分。存储库中的大多数更改很可能不会涉及到与您接触过的代码相同的代码。您只需使用git pull命令下载所有更新的代码。当您所接触的部分在存储库中发生更改时,git将尽最大努力合并这些更改。您必须手工编辑文件的唯一时间是she git检测到无法解决的冲突。我之前提到的那篇文章谈到了这一点


    您可以使用您最喜欢的文本编辑器,但实际上,在这种情况下使用三向合并工具非常方便。是Linux上的一个这样的工具,但我相信还有很多。

    这里是一个可能的工作流程

    初始设置

    git clone --origin 'upstream' http://example.com/project.git
    cd project
    git checkout master
    git checkout -b patched
    # make changes
    git add --all
    git commit -m 'internal patches'
    
    新的上游变更

    git checkout master
    git pull upstream
    git checkout patched
    git rebase master
    
    参考文献:


    为什么你不能推?你有错误描述吗?项目在GitHub上吗?谢谢你热情的帮助,但这不是项目的问题。只是因为我的补丁包含不友好的业务绑定。总之,我不应该也不能将其推到上游。是否存在任何需要处理的管理系统?就像我有很多补丁和几个项目一样,更新本地存储库是一件非常耗时的事情。到目前为止,我还没有使用任何管理系统。但正如你正确地提到的,这是必要的。我会更新,一旦我找到了一个正确的工具,有助于工作的几个项目