构建在某人代码库之上的 Git 工作流程

Posted

技术标签:

【中文标题】构建在某人代码库之上的 Git 工作流程【英文标题】:Git workflow for building on top of someonelses codebase 【发布时间】:2013-11-12 05:24:24 【问题描述】:

我需要在 Web 应用程序项目中与其他开发人员进行交互。这是我研究使用 git 的其他人推荐的。

我们在项目上的大部分工作都依赖于我们拥有许可的其他人维护的代码库。我们的工作主要是重新命名该代码并根据需要添加或删除功能(这样做是为了简化客户端文档和用户交互)。什么样的 git 工作流最适合让我们将原始代码库维护者的工作集成到我们的代码中?我们永远不会向代码库维护者提交任何东西。所有代码都是phphtml、css、js……

我对使用 Git 很陌生,之前从未在项目中使用过它。我已经阅读了大部分 Atlassian 教程,但对如何将其应用于我当前的需求有点迷茫。我目前正在使用带有 sourcetree 的 bitbucket(但我确实安装了 Gitbash 和 TortoiseGit)

我尝试搜索这个问题,但我对 Git 有点太陌生,显然甚至不知道要搜索哪些术语。我发现以下线程似乎涉及该主题,但我认为它们不是我要寻找的: Proper Git workflow for combined OS and Private code?

我的猜测是我需要设置一个 master 分支,然后关闭这个名为 basesource 的新分支。然后更新master off basesource,然后分支并创建一个开发分支。在开发分支上做我的工作。然后,当我收到对 basesource 的更新时,将更改添加到 basesource 并将它们拉入 master 然后将它们拉入开发分支?然后在开发分支而不是主分支上发布任何版本吗?

或者这只是愚蠢的,我应该使用一些 mutlifile diff 来查看源代码中的更改并手动更改我们的版本吗?

【问题讨论】:

为什么有人会降低这个问题的排名?我花了将近一天的时间研究并试图找到答案。那是在阅读了有关如何使用 Git 和 Git 工作流程的材料之后。不是每个人都对新术语如此熟悉,所以对一个人来说似乎很明显的东西对其他人来说并不那么熟悉。 【参考方案1】:

如果您想对您将对第三方依赖项进行的修改进行版本控制,您可能需要读取 Git submodules,因为它看起来相对适合您的情况。

子模块允许您将提交到您的项目和第三方依赖项的代码库(即在您的主项目存储库的子目录中)分开,而所有内容都在一个公共存储库下。

【讨论】:

谢谢,这似乎是我所要求的。实现看起来非常困难,而且远远超出了我目前的能力水平。你或其他人知道更简单的方法吗? 只是补充一下,因为我注意到我正在为其他人使用源代码树,这是一个关于这个主题的博客blog.sourcetreeapp.com/2012/02/01/…

以上是关于构建在某人代码库之上的 Git 工作流程的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Jenkins 工作页面隐藏有关共享库的 Git 信息?

基于git的代码版本管理规范及流程

如何在构建服务器和工作站之间同步 Gradle/Android 版本代码

git简介命令

git 工作目录 vs 暂存区 vs 本地仓库 vs .git 文件夹

15 分钟学会使用 Git 和远程代码库