【问题标题】:git maintaining 2 versions of the same project, with different users on eachgit维护同一个项目的2个版本,每个版本都有不同的用户
【发布时间】:2013-04-02 02:51:31
【问题描述】:

我在 github 中有一个(私人)项目,一个开发团队在其中提交更改。客户现在要求在他们自己的系统副本上开发一些重度定制。一个新团队将致力于这个项目,但我不希望这个团队有权访问原始存储库。于是我在 github 上新建了一个仓库,并用原项目的代码初始化了它。

但是,我仍然希望第二个项目能够对原始项目进行更新。如何设置存储库以满足此需求?

或者,如果我要保留一个项目,有没有办法让新团队只访问其上的特定分支?

【问题讨论】:

  • 他们需要以某种方式访问​​原始存储库。我认为您的意思是他们需要具有只读访问权限。大概这是一个私人存储库,否则这个问题没有任何意义。
  • 是的,这是一个私人仓库。我不希望他们访问原始项目,即使是只读的,因为它包含与他们有权访问的代码无关的其他数据(一些附加文件、分支)

标签: git github


【解决方案1】:

你正在寻找的东西叫做分支(我看到你在使用它)。

https://help.github.com/articles/branching-out http://learn.github.com/p/branching.html

一旦你有了不需要新代码库的分支,你就可以使用 fork(告诉他们为你的项目),这样他们就可以获得更新

在此处阅读 mroe: Definition of "downstream" and "upstream"

【讨论】:

  • 我怎样才能阻止第二个团队访问原始代码库?我希望他们能够访问项目的单个分支
【解决方案2】:

从存储库中取出其他数据。创建一个只包含您希望他们能够看到的文件和分支的新存储库,然后从旧存储库中删除它们。然后give them read-only access to the new repository.

【讨论】:

  • 这确实是一个可行的选择,我会考虑的
【解决方案3】:

我已遵循this site 的建议。我在这里为任何感兴趣的人重复这个过程: 假设原始项目在 projectA 中签出,而派生项目在 projectB 中签出:

我第一次这样做:

 cd path/to/projectB
 git remote add orig_project path/to/projectA 
 git fetch orig_project
 git merge orig_project/master -X theirs
 git push

现在每次我需要将 projectA 的更改同步到 projectB 时,我都会这样做:

git fetch orig_project
git merge orig_project/master
git push

orig_project 可以是任何东西。我第一次使用-X theirs,否则所有获取的更改都会发生冲突

【讨论】:

    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多