如何在 git 中设置临时存储库?

2023-11-27

我想创建一个存储库 [B],在名为 x_master 的分支中跟踪远程存储库的主服务器 [A]。它自己的主控在初始创建时也应该是一个克隆,其他[开发人员]可以克隆并将更改推送到其中。

有时,由于 A 中有更改,我需要能够将它们拉下来并将它们合并到 B 的 x_master 中(如果我理解这一点,这应该是快进,因为它们将是 x_master 分支中的唯一更改) B),然后能够将这些更改合并到 B 的 master 中,从而在拉取时合并到任何克隆 B 的 master 中。

我在概念上想要的是这样的:

master      x_master
 [A] <---------> [B] <-------> [Dev2]
                  ^-------> [Dev1]
                  master

最终,当所有开发完成后,我需要将 B 的 master 中的更改推送到 A 的 master,但是 A 中正在进行的更改需要合并到 B 中

  • 我该如何设置?
  • 如何从 B 推入 A 或从 A 拉出?
  • 这样的设置有意义吗?

我尝试过各种clone --mirror、branch --track,但似乎没有正确获取A和B推拉的变化。


我确信有一个快捷方式,但我倾向于只使用基本命令。无论如何,设置存储库B:

$ cd repo_B
$ git init --bare
$ git remote add upstream URL_FOR_REPO_A
$ git fetch upstream +master:refs/heads/x_master
$ git branch master x_master

When upstream repository is modified, you need to pull those changes in on the bare repository1:

$ git fetch upstream +master:refs/heads/x_master

This will overwrite2 any possible changes in x_master, so you'd better leave that branch alone. :)

您将需要合并上游更改x_master into master当/如果 A 改变时。不幸的是,此阶段可能会出现冲突,因此必须通过我们的裸存储库的克隆来完成。只需克隆 B 存储库(到本地或远程位置),然后合并x_master into master,解决冲突,并反击。

最终任务是推动开发完成master到存储库 A。这可以通过两种方式完成。第一种是直接将 B 的 master 推送到存储库 A。这可以通过运行以下命令来完成:

$ git push upstream

在存储库 B 上。另一种选择是更受控制的合并master to x_master使用第三个存储库:

$ git clone URL_FOR_REPO_A
$ cd repoDir
$ git remote add dev URL_FOR_REPO_B
$ git fetch dev
$ git branch --track master_b dev/master
$ git merge master_b
$ <resolve conflicts, if any>
$ git push origin master

Note 1

为了完成,您可以将远程配置为默认情况下仅获取该分支:

$ git configure branch.upstream.fetch +master:refs/heads/x_master

--add,您甚至可以添加更多分支来获取:

$ git configure --add branch.upstream.fetch +branch_1_0:refs/heads/x_branch_1_0

现在,在没有 refspecs 的情况下 fetch 也能正常工作:

$ git fetch upstream

Note 2

为了防止推master of repo_B,你可以使用服务器端钩子 like pre-receive or update.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 git 中设置临时存储库? 的相关文章

  • 运行 flutter doctor 吐出错误:标准错误:致命:坏对象 HEAD

    我已经从官方网站安装了 Flutter 和 Android Studio 我是 Git GitHub 移动开发和 Android 开发的新手 我试图在命令提示符 Windows 10 中运行 flutter doctor 命令 但是 它会以
  • 使用 Git 在线使用 TFS 的 Visual Studio 2013:自动保存文件签入

    我目前正在将 Visual Studio Premium 2013 Update 3 与 Team Foundation Server Online 结合使用并使用 Git 存储库 直到最近 我已经成功使用 Git Repo 几个月了 现在
  • 如何在没有本地存储库的情况下在远程运行 git 命令

    我有一个名为 git export 的脚本 它可以帮助我导出远程存储库 它是这样运行的 git export http host com git repo lt t tag or b branch or c commit gt local
  • git 的精简包是什么?

    我还没有找到太多关于瘦包的信息 并且手册页的信息对此相当含糊 我知道这与连接速度慢有关 但是什么是 连接速度慢 它的优点和缺点是什么 什么时候应该使用它 什么时候不应该使用它 根据记录 手册页 index pack https www gi
  • Git子模块绝对工作树路径配置

    这是我的子模块redmine 仪表板配置文件 子模块配置文件 core repositoryformatversion 0 filemode true bare false logallrefupdates true worktree Us
  • 如何将一个文件存储库上传到 Gist,并保留历史记录?

    我的计算机上有一个包含单个文件的 Git 存储库coins py 我如何才能将其作为 Github 上的要点来保存历史 这其实很简单 您可以将现有历史记录移动到 Gist 存储库中 就像将其移动到任何其他存储库中一样 创建要点 只需输入一些
  • 避免使用 git 和 make 重新编译

    我在 git 中有两个开发分支 并且经常需要在两者之间进行更改 然而 真正令人沮丧的是 每次我在 git 中更改分支时 整个项目都会重新构建 因为某些文件的文件系统时间戳会发生变化 Ofc makefiles 配置为将项目构建到两个不同的构
  • 如何使用 LibGit2Sharp 从 Git 获取更改?

    下面的代码将 Git url 克隆到测试目录 var url http abc 555 com team project 555 git var path E temp 555 var credential new Credentials
  • Git 分支之间未跟踪的文件

    我一直在这里寻找答案 看来我可能只是对 git 分支应该如何工作做出了错误的假设 我有我的master分支 我创建了一个名为的功能分支profiles我正在对个人资料进行一些特定的工作 在处理配置文件时 我更改了 5 或 6 个文件 并添加
  • git checkout HEAD -- 和有什么区别?和 git reset --hard HEAD?

    我已经查看了这个 stackoverflow 链接 但我认为我所要求的之间的细微差别是使用HEAD在结账命令中 因为他们的建议似乎不起作用 git reset hard HEAD 和 git checkout 之间有区别吗 https st
  • 如何 git checkout 提交并将子模块更新到该提交?

    我正在克隆一个带有子模块的项目并恢复到大约一年前的提交 git clone recursive branch 5 6 https codereview qt project org pyside pyside setup cd pyside
  • 如何更改全局 git 设置以在拉取期间进行 git 合并

    目前 我的全局设置设置为在 git pull 期间执行变基操作 我希望它默认将其更改为 git merge 如何更改此设置 TL DR git config global pull rebase false 有点细节 Git 使用配置pul
  • Git 和重定向

    我注意到 当 git html 项目页面如下所示 https github com fruux sabre dav 被克隆 以这种方式 git clone https github com fruux sabre dav 实际生成的远程 U
  • 我应该如何将更改从一个提交转移到另一个提交?

    我在同一个分支上有两个提交 一个接一个 我在第一次提交中添加了对文件 A 的更改 然后对其他文件进行了一些更改 然后进行了另一次提交 现在我希望对文件 A 的更改是在第二次提交而不是第一次提交 最优雅的方式是什么 我知道这是一个老问题 但我
  • Eclipse git checkout(又名恢复)

    是否可以做相当于git checkout在 Eclipse 中使用 Egit 插件 我有一个已修改的文件 我想放弃更改并将文件恢复到源存储库中的内容 在 Subversion 中 这称为恢复 在 git 中 相当于 checkout 我在团
  • 撤消多个文件和文件夹“git add”[重复]

    这个问题在这里已经有答案了 我执行了 git add 现在我想恢复 git add 我怎样才能做到这一点 git reset 这相当于git reset HEAD 将取消 add 更常见的是 取消暂存 所有文件 In Git revert用
  • 是否有 git-merge --dry-run 选项?

    我正在合并一个可能有很多冲突的远程分支 我怎么知道它是否会发生冲突 我没有看到任何类似的东西 dry run on git merge 如前所述 传入 no commit标志 但为了避免快进提交 也传入 no ff 像这样 git merg
  • 是否可以使用“最小”算法进行交互式添加?

    当从快照计算变更集时 Git 并不总是正确选择块边界 git diff has a diff algorithm允许在这方面进行一些调整的选项 git diff minimal有时会给出比git diff alone 有没有办法获得相同的优
  • 防止在 Git 中签出

    我目前正在研究使用 Git 管理 OpenInsight 应用程序的源代码 由于 OI 代码存储在数据库表中 因此需要进行一定量的手动工作才能将源代码导出为文本 反之亦然 到目前为止 我已经成功地使用 Git 挂钩自动化了很多这项工作 但是
  • 如何让“git status”始终使用短格式?

    我想要git status始终使用短格式 git status short M file1 M dir file2 file untracked3 dir file untracked4 似乎不存在这方面的配置选项 并且git config

随机推荐

  • 如何添加标记 onClick 并在 google-maps-react 中显示我的地理位置?

    我在谷歌地图文档上发现了很多有用的信息 但在 html 中简单使用 js 以防万一react老实说我不明白 源代码 import React Component from react import Map InfoWindow Marker
  • C、C++、C#、Java 和 Python 中的声明、定义和初始化 [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 上述每种语言中的术语含义是什么 为什么这些语言在这方面有所不同 无论它们在哪里 如果有的
  • Google 地图距离和方向 API 之间的区别

    Google 为 1 距离矩阵和 2 方向服务提供 API 我试图搜索1和2之间的区别 我的任务是 当用户从源移动S到目的地D使用某种路径 我们需要展示用户实际走过的路径 在谷歌地图上 实现它的最佳方法是什么 使用 1 距离矩阵 API 或
  • jQuery 自动完成:移动列表位置?

    我想知道是否可以将下拉列表向下移动 4px 我尝试过多种风格 ui autocomplete 包括 margin top 4px top 4px 但它似乎不起作用 接受的答案是不再有效因为the offset该选项在 jQuery UI v
  • 如何从控制台中的标准输入读取内容?

    我想从命令行读取标准输入 但我的尝试已经结束 程序在提示我输入之前就退出了 我正在寻找相当于控制台 ReadLine in C 这就是我目前所拥有的 package main import bufio fmt os func main re
  • 使用 python3.6 进行 Django 迁移错误:根:未找到哈希 sha3_224 的代码

    你好我读过Django 教程我有一个与特定相关的错误sha3 224迁移过程中的哈希函数 如何解决这个问题呢 谢谢 venv linuxoid linuxoid ThinkPad L540 myprojects myproject pyth
  • 使用 INDEX 和 MATCH 在表数组中进行两列查找

    我希望 Excel 显示具有两个匹配单元格的表数组中的值com cd and div cd using INDEX and MATCH 我尝试过以下公式 但它不起作用 INDEX K9 K53 MATCH K3 I9 I53 0 MATCH
  • 在 data.table 列中使用列表

    In data table可能有类型的列list我第一次尝试从这个功能中受益 我需要存储表的每一行dt一些来自 rApache Web 服务的评论 每个评论都会有一个用户名 日期时间和正文项 不要使用带有一些奇怪 不寻常的字符的长字符串来将
  • Android + OpenCV:使用CameraBridgeViewBase时如何设置相机分辨率

    您好 我正在使用 OpenCV4Android 人脸检测示例 我想知道如何获得相机的分辨率并将其设置为其他值 在此示例中 CameraBridgeViewBase 我在对象上看到了这一点 private CameraBridgeViewBa
  • 如何修复 python socket-io 服务器中的“Access-Control-Allow-Origin”错误

    我正在创建一个使用 Vue js 作为客户端 和 Python 作为服务器 的项目 Python用于一些计算 Vue js用于接口 我使用 python socketio 连接它们 https python socketio readthe
  • java中ArrayList的排序

    我有一个 ArrayList of String 的 ArrayList 在 Outer ArrayList 的每个索引上 每个 Inner ArrayList 有四个项目 有四个参数 联系人 ID 联系人姓名 联系地址 联系电话 现在我想
  • Telegram 机器人向机器人发送消息

    我编写了一个电报机器人 这在发送给群组或用户时效果很好 不过我有一个特殊的要求 我需要能够发送给另一个机器人 将两个机器人以管理员身份添加到组时 我仍然无法通过第二个机器人接收消息 我只能通过添加到该组的真实用户帐户看到它 我缺少什么 我使
  • Linux命令用另一个字符串替换大文件中的字符串

    我有一个巨大的 SQL 文件在服务器上执行 转储来自我的机器 其中有一些与我的机器相关的设置 所以基本上 我希望每次出现 c temp 被替换为 home some blah 如何从命令行完成此操作 sed对于大文件来说是一个不错的选择 s
  • MYSQL:如何找到“上周一的日期”(性能问题)

    有没有比写更简单的方法 select date sub curdate 间隔 WEEKDAY curdate 天 正如上周一从双 如果您不使用古老的 MySQL 则可以将其包装在存储函数中 CREATE FUNCTION LastMonda
  • rgdal 包纬度/经度 -> UTM

    有人能看出这有什么问题吗 library rgdal Make a two column matrix col1 long col2 lat xy lt cbind c 107 c 26 Convert it to UTM coordina
  • 使用 Numpy 和 Cython 加速距离矩阵计算

    考虑一个维度为 NxM 的 numpy 数组 A 目标是计算欧几里德距离矩阵 D 其中每个元素 D i j 是行 i 和 j 之间的欧几里德距离 最快的方法是什么 这并不完全是我需要解决的问题 但它是我正在尝试做的事情的一个很好的例子 一般
  • 从电子邮件提交表格

    我正在开发一个通过电子邮件提交表单的项目 场景是这样的 我们将向电子邮件列表发送一份表格 客户必须在其中填写表格 一旦他们点击 提交 就应该提交表格 并且服务器应该能够检索填写者提供的值 当我尝试过 它没有将提交按钮视为表单提交 并且没有执
  • 在关系数据库中,我们可以拥有一个与其他表没有任何关系的表吗?

    在关系数据库中 我们可以拥有一个与其他表没有任何关系的表吗 是的 关系的表达方式是使用外键 如果您生成的表没有外键 并且其他表中没有外键指向该表 则它没有关系 不过 以后仍然可以建立关系 所以不要担心搬起石头砸自己的脚
  • 如何访问R中传单生成的地图

    假设我有这样的代码 Install devtools if needed if require devtools install packages devtools view rawif devtools R hosted with by
  • 如何在 git 中设置临时存储库?

    我想创建一个存储库 B 在名为 x master 的分支中跟踪远程存储库的主服务器 A 它自己的主控在初始创建时也应该是一个克隆 其他 开发人员 可以克隆并将更改推送到其中 有时 由于 A 中有更改 我需要能够将它们拉下来并将它们合并到 B