问题标签 [git-fork]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
41 浏览

git - 分叉一个项目并获取更新,而不带入以前的历史记录,直到初始提交

所以假设我有存储库 A,我创建了存储库 B,我打算将它作为 A 的一个分支。我克隆 A 并删除 .git,然后重新创建它,添加源并推送,从而用 1 次提交替换历史记录。一切都很好,直到项目 A 更新文件。因为我想跟上 A,所以我获取更改并将其合并到 B。但是,当我获取更改时,它还会获取整个过去的历史记录、标签、分支,以及我不想要的所有内容。

然而,我想要的只是来自 master 或我指定的任何分支的文件历史记录(如引入新更改的提交和实际文件修改),没有标签和分支,并且不总是带回我删除的文件夹。

如果这是不可能的,有没有办法告诉 git 加载更改而不是完全合并,我可以告诉它应用哪些更改以及丢弃哪些更改?

0 投票
3 回答
32580 浏览

github - 可以在 GitHub 中自动同​​步分叉吗?

如果选中,Stash 将启用自动分叉同步: https
://confluence.atlassian.com/display/STASH/Keeping+forks+synchronized它将更新您未修改的分叉中的任何分支。

我一直无法在 GitHub 中找到类似的自动功能;所有的谷歌搜索都在寻找通过本地缓存同步分叉的手动方式。

0 投票
1 回答
4693 浏览

git - 如何在 github 中比较/比较特定版本的 master 和 fork repo

Github 上有两个 repo:

“Repo1”是一个有定期提交的主节点(我还没有分叉)“Repo2”是大约 2 年前的 Repo1 的一个分叉(我还没有分叉)

我想根据“Repo2”(大约 2 年前)分支的“Repo1”中的代码版本在两个 Repos 之间做一个 DIFF。我的目标是从“Repo1”获取最新的代码,从“Repo2”获取现在隔离的更改,并将它们合并到一个新的“Repo3”中,有效地将 2 年前添加到 fork 的更改带入我的新“Repo1”的最新代码的分支。

我遇到的一个问题是,当我尝试从同一个根/主服务器分叉多个叉子时,它似乎不起作用,只是将我指向第一个叉子。我想我需要在本地克隆所有内容,并在那里完成所需的工作,然后推回一个新的干净合并回购?

非常感谢任何指导。

0 投票
2 回答
162 浏览

git - 将存储库标记为 fork,如果它已手动复制

我是 Git 新手,做了一件愚蠢的事情:我有一个项目 A,然后手动将它复制到新项目 B(没有 git 文件夹),创建了一个新存储库并同时在两者中工作。

现在有什么方法可以将项目 B 设置为 A 的分支吗?

ps:我需要它来在项目之间交换提交,而且,补丁似乎不是解决方案。

UPD 11.07:正如我所说,主要目的是将一些提交从 B“移动”到 A,反之亦然。

UPD 13.07:将解决方案移至答案

0 投票
1 回答
92 浏览

git - Git 分叉创建

我有一些关于“分叉”回购的问题,即使在阅读了文档之后,我也对此感到有些困惑。如果有人能指导我完成并原谅我对 Git 的英语和理解,我真的很感激。

我正在使用 Atlassian,并说我要复制这个名为“testProj”的存储库,它位于名为“allProjects”的项目下

  1. 首先,我可以通过终端命令进行分叉,比如 git clone 等吗?否则它只能通过网络用户界面来实现吗?
  2. 根据我通过他们的文档的理解,据说我已经按照说明创建了分叉,是否会通过电子邮件等通知该回购协议的创建者?
  3. 在 Qns 2 之前,原始 repo 显示为 / - allProjects/testProj。在“分叉”存储库中,它显示为 / - guest01/testProj,这是否意味着它使用我的用户名作为项目名称,同时包含新的存储库?
  4. 我是否应该在我的用户名中 git clone 存储库,ssh://git@stash/~guest01/testProj.git它是否会影响将来,如果我执行git pullgit fetach -all更新分支,无论我是否首先启用或不启用该Enable Fork Syncing选项?
0 投票
2 回答
241 浏览

git - 具有 2 个永远不应合并的分支的项目的 git 策略

注意:立即查看编辑部分以获得更好的解释

我是使用GIT的新手,所以如果我不使用正确的术语(仍在学习),我会提前道歉。

我正在使用BitBucket,因为现在我只想要私人项目。

我想知道执行以下操作的最佳策略是什么:

我有一个适用于 Android 的Phonegap/Cordova应用程序(所以它主要是 HTML+JS)。现在,我想使用该项目来创建一个 iOS 应用程序。大多数代码都是一样的,但是我需要在代码中更改特定于平台的内容,以使其适用于 iOS。

我的想法是能够:

  1. 创建 Android 版本的“分支”(或分支?),我可以在其中编辑 iOS 所需的任何内容。这个分支永远不会合并回 Android 版本。

  2. 每当我更新 Android 版本时,都能够将这些东西合并到 iOS 分支中。

这样我就可以始终将 Android 版本用作“主”,应用任何错误修复、新功能等,然后“自动将这些应用到 iOS 版本,同时保持其自己平台特定的代码行不变。

所以我不确定我到底需要如何在概念上设置并在这个项目中使用 GIT,这样我就可以将这些分支分开,因为我一直在关注的所有分支似乎最终都是通过合并那些入主,这正是我不想做的。

当然我可以手动完成所有这些,但是如果我可以用它来学习 GIT,那将是一个很好的方法,而且很有用!

提前致谢!

-------> 编辑

我收到的答案是很棒的想法,但我认为我没有很好地解释自己,所以我会尝试使用另一个例子。原因是我认为我的想法可以用于许多其他项目,而不仅仅是我上面解释的那个,所以我真的很想知道它是否可能以及如何实现。

这是另一个例子:

让我们想想 AOSP(Android 开源项目)和数百名开发人员创建的所有自定义 ROM。他们都使用相同的源(AOSP 或它的变体),克隆它,并将他们的自定义修改添加到他们自己的存储库中的操作系统。然后,只要 AOSP 源中有更新,他们只需要“更新”他们的克隆,但保留他们已经实现的任何内容。

按照与我的第一个示例的类比,我的 Android 应用程序将是 AOSP 源代码,而我的 iOS 应用程序将是克隆。

所以也许我应该以某种方式使用 2 个存储库?还是分支/叉子?这是让我困惑的部分...

0 投票
1 回答
176 浏览

git - GIT 更新分叉项目保留我自己的更改

我是 GIT 的新手,我很难弄清楚这一点。我已经搜索过这个主题,但我发现的所有内容都与我的问题不完全相关。

事情是这样的:假设有一个在线存储库,我分叉(或克隆,不确定它是否有任何区别),然后我在本地对不同的文件进行自己的更改,添加其他文件,删除一些文件等。

我不希望将这些更改推送到原始 repo。我想要的是,如果原始存储库发生更改,我可以使用这些更改更新我的 fork/clone,然后将我自己的更改再次应用到更新的版本上。

我在网上找到的所有内容都在谈论这一点,但最终目标始终是将本地更改推送到原始存储库,所以这对我不起作用。

完成我上面解释的内容的策略是什么?

0 投票
6 回答
12089 浏览

git - GitHub repos 上的最佳实践,用于 Fork 或创建新分支

我正在寻找最佳实践,在 GitHub 上分叉与分支。我已经在 GitHub 中阅读了这个 Forking vs. Branching,但它并不相关。

我们的 5 人团队在同一个存储库上工作,我们希望避免合并代码中的问题、冲突或回归。目标是让 5 个人在项目的不同部分工作,通常在同一个文件上。

我想知道是否值得:

  • 分叉项目,工作并创建拉取请求,因此每个人都可以轻松地查看代码,或者
  • 创建一个新分支 - 工作完成后在 master 上工作并合并。
0 投票
1 回答
100 浏览

git - 我应该为第二个拉取请求重新分叉吗?

  1. 有人在 GitHub 上有一个很酷的项目。
  2. 我分叉它以进行一些更改。
  3. 我提交了一个拉取请求。
  4. 我注意到其他一些我认为可以改进的地方。

我是否再次分叉原始项目以更改新分叉并从那里提交拉取请求,或者我是否更改我的原始分叉并以该分叉为头提交另一个拉取请求?

0 投票
2 回答
1448 浏览

git - 在 Web 界面中更新 GitHub fork 存储库

我想使用 GitHub Web 界面将分叉的 GitHub 存储库与原始存储库同步。

网络上的大多数解决方案都在谈论在命令行上执行此操作。

我找到了以下两个线程以及我需要的解决方案 -

我能够成功地为分叉的仓库创建拉取请求并将其合并。但是,此事务被记录为分叉存储库中的附加提交。

现在,如果我将原始版本与 fork 进行比较,则会显示此附加提交-

原始回购 - https://github.com/linode/docs
分叉回购 - https://github.com/jesinwp/docs