统一更新:使用本地文件的更新更新私有存储库(重构、重命名、更新)并从原始存储库获取定期更新

2024-03-27

我刚刚开始学习 Windows 上的 GitHub CLI 工具。认为我是新手 我有一个如下所示的用例:

在深入探讨之前,让我先总结一下:

我的用例是:克隆一个开源项目(它更新 定期),即创建它的本地副本并进行修改(包括 重命名文件和文件夹),将更改推送到我的私人存储库 但同时我需要来自开源的定期更新 项目以重命名的格式反映。我是否必须重命名文件& 项目每次发布更新时的文件夹并将其推送到我的 私人回购?

假设项目 A 是一个定期更新其文件的开源项目。项目 B 是我在 GitHub 上的私人存储库。将我的项目 C(本地存储库)链接到 Origin(项目 B)和上游(项目 A)的所有初始步骤都已通过 .git 文件夹内的 cli 和配置文件完成。

在我的电脑上,我的本地副本Project C已经使用命令获取

git克隆“https:..../project-B.git”

现在我的目的如下:

1.对我计算机上的本地副本项目 C 中的代码本身进行大量自定义,并将这些更改推送到我的私人副本:项目 B。这包括但不限于重命名项目文件夹和文件。

2.从项目 A 获取定期更新,并在私人仓库项目 B 中更新同样的内容。

简而言之,我的私人回购项目 B 应该包含我的更改以及上游端发生的常规更改:项目 A

实现这一目标的最佳方法是什么?我知道将本地副本推送到 Private Repo B 的步骤如下:

Step 1 : git status -->to check for the changes in local copy.
Step 2 : git add --all
Step 3 : git commit -m 'message reflecting the nature of change'
Step 4 : git push -u origin master
where origin is my Private repo B and master is the branch that contains all the files. 

我还知道可以使用以下方法拉取上游文件:

git pull upstream master --> to pull in the latest changes from project A onto project B.

因此我的问题是:

1.我到底应该何时使用 git pull 或 git rebase 与 find renames :在推送提交的更改之前或之后。我有限的理解是 git rebase 是在 origin 中查找重命名的文件(在我的用例中)并进行更改?

Or

2.我需要一种完全不同的方法吗?

Or

3. 针对上述问题的方法稍有改动?

EDIT:

我已经使用命令 git push -u origin master 成功推送了本地更改(项目 C-> 项目 B(git 上的私有存储库))。

只是,我需要知道如何从存储库项目 A(定期更新的开源)中提取更改并更新已重命名的当前本地副本(文件夹、文件其他所有内容)以及添加的其他新代码行。最终,我需要从项目 C(本地副本)---> 项目 B(私有存储库)推送这些更新的更改,并使我的私有存储库具有最新提交的 UpToDate。

编辑:将公共存储库 docker-jitsi-meet 作为存储库,我需要定期更新,并在我的私人存储库中进行修改和重命名。 我做了以下事情:

1.我将公共 jitsi-meet 存储库克隆到我的本地计算机上。

2.git克隆--裸github.com/jitsi/docker-jitsi-meet.git。

3.cd 到我的本地副本并 git push github.com/user/project.git (私人仓库)。

4 删除裸副本并立即克隆存储库 git clone github.com/user/project.git

5.将公共上游存储库添加为远程仓库:git remote add upper github.com/jitsi/docker-jitsi-meet.git。

6 git fetch --all 显示了我需要引入的来自上游的许多更改。

  1. I use

git 合并上游/master 并显示以下跟踪:

$ git merge upstream/master
Auto-merging CHANGELOG.md
Auto-merging docker-compose.yml
CONFLICT (content): Merge conflict in docker-compose.yml
Auto-merging focus/rootfs/defaults/jicofo.conf
CONFLICT (content): Merge conflict in focus/rootfs/defaults/jicofo.conf
CONFLICT (modify/delete): jibri/Dockerfile deleted in HEAD and modified in upstream/master.  Version upstream/master of jibri/Dockerfile left in tree.
CONFLICT (modify/delete): prosody/rootfs/etc/cont-init.d/10-config deleted in HEAD and modified in upstream/master.  Version upstream/master of prosody/rootfs/etc/cont-init.d/10-config left in tree.
Auto-merging web/rootfs/defaults/system-config.js
CONFLICT (content): Merge conflict in web/rootfs/defaults/system-config.js
Auto-merging xmpp/rootfs/defaults/conf.d/jitsi-meet.cfg.lua
CONFLICT (content): Merge conflict in xmpp/rootfs/defaults/conf.d/jitsi-meet.cfg.lua
Automatic merge failed; fix conflicts and then commit the result.
  1. I did

git $ git mergeupstream/master -X --strategy-option =“find-renames = 20”

并得到以下内容:

error: Merging is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.

最简单的方法通常是在本地克隆中添加两个遥控器,然后不断合并来自辅助遥控器的更改。遥控器就像一个bookmark对于另一个存储库;当你克隆时,origin远程会自动为您创建,它指向您克隆的源。

以下命令只需执行一次:

git clone https://github.com/user/project.git localclone
cd localclone
git remote add upstream https://github.com/upstream/project.git

然后稍后“同步”你的分叉:

git fetch --all
git merge upstream/master
git push origin HEAD

这将合并自上次获取+合并以来“上游”远程/存储库的“主”分支中发生的所有更改。

请注意,如果上游的提交更改了与您的分支中相同的行,则会出现需要解决的合并冲突。

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

统一更新:使用本地文件的更新更新私有存储库(重构、重命名、更新)并从原始存储库获取定期更新 的相关文章

  • 有没有一种简单的方法可以知道哪些文件将在下一个“git pull”中更新?

    我想知道如果我执行 git pull 哪些文件将被更新 以及希望发生的更改 is git stash git fetch git diff origin master git stash apply 答案 See here http ker
  • 从 Git 中的分支父级中提取更改

    如何从 Git 中的分支的父级中提取更改 特别是在 github 配置的项目中 例如 假设我分叉了http github com originaluser originalproject http github com originalus
  • 无法在 Google Colab 中打开从 GitHub 克隆的存储库

    我想克隆 GitHub 存储库 体验 keras yolo2 https github com experiencor keras yolo2 我按照以下命令操作 git clone https github com experiencor
  • GitHub API - 语言列表

    GitHub API 中是否有一个端点可以为我提供 GitHub 上所有语言的列表 我正在寻找与 github com 网站上 趋势 部分中的语言下拉列表类似的结果 不是直接来自 GitHub API The OP敏捷王牌 https st
  • 在 GitHub 上托管可执行文件?

    我想将可执行文件与我的源代码一起分发 我的源代码全部整齐地托管在 GitHub 上 是否可以将可执行文件和安装程序添加到我的 GitHub 项目页面 而不将它们添加到我的 git 存储库 请注意 由于某种原因 GitHub 停止了此功能 请
  • GIT Rebase 对多个 0.5GB 二进制文件致命

    这个问题本质上是重新开rebase 期间 git 崩溃 https stackoverflow com q 7692944 1286639从来没有答案 我正在尝试从我的 secc 分支进行变基 git rebase main First r
  • Jekyll 在子网站上生成静态网站?

    是否可以将 Jekyll 放在 GitHub 上托管的网站的单个部分上 即是否可以让 example github io 成为常规站点 而 example github io blog 由 Jekyll 静态生成 我相信可以通过创建另一个名
  • git推送错误“致命:无法找到'https'的远程帮助程序”

    我添加了远程源 例如 git remote add origin https github com username repo git 当我推送 git 存储库时 出现以下错误 git push u origin master fatal
  • 恢复后如何挑选提交?

    我正在研究我的feature branch并在审核后合并到development待部署 后来 一位同事决定发布一个版本 并将他和我的合并到master 在部署时 他意识到他的代码有错误并恢复了master 在我们的分叉和拉动流程中 这意味着
  • 无法使用 File delete() 方法删除 git repo 中的 .pack 文件

    对于我正在编写的这个方法 我使用 jgit 库克隆一个 git 存储库 然后对这些文件执行一些操作 最后我想删除该存储库 我遇到的问题是 当我在 pack 文件 位于 git objects pack 中 上调用 delete 方法时 它无
  • 如何共享/扩展/重用/引用 GitHub Workflow?

    我有两个工作流程 一种方式是通过推送到 master 来部署到测试环境 另一个在发布到生产环境时部署 它们90 相同 代码复制粘贴 是否有一个概念 例如提取部分重复逻辑并将其放入自己的文件 部分 片段中 GitHub Actions 中的重
  • 使用 Dropbox 作为跨多台机器的 git 工作目录 - 提交不能完美同步

    首先 我想强调这个问题与在 Dropbox 上托管我的中央存储库无关 而且我对使用 git 还很陌生 我能找到的其他涉及 Dropbox 和 git 的问题都没有真正回答我的问题 它们要么是关于使用 Dropbox 托管您的存储库 要么是关
  • 子 git 存储库作为主存储库的子集

    我正在寻找一种方法来设置 git 存储库 其中包括来自较大存储库的文件子集 并从该主存储库继承历史记录 我的主要动机是能够通过 GitHub 共享代码子集 我目前通过单个 git 存储库管理我的研究相关 主要是 Matlab 代码 代码本身
  • git push origin 分支名总是推送到 master

    我搜索了一下 但似乎找不到答案 在我可以访问的两个盒子上 当我执行 git push dry run origin mytestbranch 时 我得到以下结果 To email protected cdn cgi l email prot
  • 如果文件已在服务器上,请避免使用 git-ftp 上传

    假设我有应用程序的本地副本 我将其推送到 github 然后使用 git ftp 将任何更改上传到我的服务器 我首先会使用 git ftp init u
  • 无法在cordova项目中安装插件

    我面临一个大问题 Unable to install the phonegap plugins在我的科尔多瓦项目中 实际上昨天它仍然工作正常 现在 每当我尝试在我的 cordova 项目中使用 CLI 添加任何 cordova 插件时 我收
  • 配置 github 以使用其他文件作为 README

    由于 Eclipse 和 EGit 组织文件和目录的方式不同 我的 README md 文件并不位于 git 存储库的根目录中 而是位于更深的一个文件夹中 我怎样才能告诉github显示some folder README md作为项目的自
  • 从 git 中删除历史记录 - git 命令失败

    我正在尝试从 Git 历史记录中清除项目 bin 目录 我已经将 bin 添加到 gitignore 并运行 git rm cached r bin成功地 现在我尝试使用 GitHub 帮助页面中推荐的命令来清除历史记录 git filte
  • 我可以通过链接分享我的私人 GitHub 存储库吗?

    我在 GitHub 上的私人存储库中有一个 Java 应用程序 我想与没有帐户的人共享它 我在网站上没有找到任何与此相关的选项 有没有办法做到这一点 协作者只能是 GitHub 用户 无法在非 Github 用户之间共享私有存储库 您需要
  • 无法验证 GitHub 中的虚假电子邮件

    我已经创建了一个 GitHub 帐户 并且我不喜欢公开分享我的电子邮件地址 我厌倦了垃圾邮件 所以我关注了 GitHub保密您的电子邮件地址 https help github com articles keeping your email

随机推荐