更具体地说,如何判断磁盘上的存储库的来源是否是某个存储库的分支?我认为这应该是一些 API 调用,但我不确定。我可以依赖“remote.upstream.url”吗?
我想分叉一个 GitLab 存储库(不是我自己的,是公共的),这样我就可以对我的分叉进行更改,并在有上游更新时使用 GitHub 桌面更新该分叉。
到目前为止,我所做的是:
(1) 在 github.com 上导入了 GitLab 存储库 -> 导入存储库 ,该存储库在 GitHub 上显示为我自己的存储库(实际上不是),而不是作为分支(我希望它是)
(2) 在 GitHub 桌面上,添加存储库 -> 在我的本地计算机上从 (1) 克隆 GitHub 存储库,对其进行更改,将更改推送到我的 GitHub 存储库(好)
(3) 如果对上游 GitLab 存储库进行任何更改,我无法将它们合并到我的 GitHub 存储库中。事实上,后者不被视为分叉,并且它不以任何方式连接到上游 GitLab 存储库。通常我会在 GitHub 桌面上使用“选择要合并到 master 的分支”,选择上游分支,然后合并更改。
(4) 我尝试了“git remote add upper {gitlab repo}”,但这没有改变任何东西。
(5) 也尝试过,或者直接在我的本地计算机上克隆 GitLab 存储库,对其进行更改,但推送我的更改会尝试将它们推送到 GitLab 上,但我不能这样做,也不想这样做,因为存储库不是'我的。
我分叉了一个Github存储库,并在几天内进行了一些更改,没有从原来的repo(我做了一个fork的repo)做了一次拉动.
现在我向原始仓库发出了拉取请求.我发现repo在我分叉之后又得到了另一个提交.
所以我的问题是,如果repo的所有者接受了pull请求,那么他之后做出的提交会保留还是他的repo会成为我的fork的相同副本?
如果是后者,那么你能告诉我怎么不删除他所做的提交?
我有一个主存储库,其中包含我开发的网站,我希望这个主存储库包含我正在处理的产品的基本通用内容.此主存储库将用作多个客户端将使用的站点的起点.这些客户端中的每一个显然都有不同的设置(例如数据库连接,也许还有品牌),但未来也可能包含自定义功能.
我想要做的是拥有主存储库,然后从主分支中为每个客户端分叉,然后对这些分支进行任何类型的自定义.所以它看起来像:
Master Company A Company B Company C
我主要关注的一个问题是如何同步变化?我不认为客户端的fork会发生任何会影响master的更改,但是master会发生一些肯定会影响fork的更改.这会是一场巨大的噩梦吗?这是处理这种情况的最佳方法吗?
也许我在这里遗漏了一些东西,但我已经看过并且想做一些看起来很简单的事情,但我还没有弄清楚(或找到某人)如何完成它。
我试图简单地git clone https://github.com/dave/repository_of_dave.git(和变体),但仍然与 Dave 的 repo 中的所有内容有关。复制/粘贴是进入这里的唯一方法吗?
有没有办法硬链接包含多个Git存储库的文件夹中的所有重复对象?
说明:
我在我的公司服务器(Linux机器)上托管一个Git服务器.我们的想法是拥有一个主要的规范存储库,每个用户都没有对其进行推送访问,但是每个用户都会分配规范存储库(将规范克隆到用户的主目录,从而实际创建硬链接).
/ canonical/Repo/Dev1/Repo(最初克隆时与/ canonical/Repo硬连接的对象)/ Dev2/Repo(最初克隆时硬链接到/ canonical/Repo的对象)
一切正常.问题出现在:
Dev1:将巨大的提交推送到服务器上的fork(/ Dev1/Repo)Dev2:在他的本地系统上获取,进行自己的更改并将其推送到自己的服务器上的fork(/ Dev2/Repo)
(现在,相同的'巨大'文件驻留在服务器上的开发人员的叉子上.它不会自动创建硬链接.)
这就像疯了一样吃掉了我的服务器空间!
如何在两个叉子之间重复的对象之间创建硬链接或者规范,以便保存服务器空间,并且每个开发人员从他/她的本地机器上的叉子克隆时获取所有数据?
我想与其他程序员一起在bitbucket上使用git的项目中工作。由于我不是项目的所有者,因此执行了以下步骤:
项目的所有者接受了我的请求,所有更改现在都在他的存储库中。
现在,我想对项目所有者的修改版本提出新的请求。我应该制作一个相同仓库的新叉子吗?
我分叉了该项目(现在我的仓库中有一个副本)
我进行了更改并提交了它们
git添加
git commit -m“ fork-commit”
我推到我的回购
git push -u origin#推送已完成到我的仓库中:me / proj
我提出了拉取请求,并被所有者接受(我/项目的主分支与所有者/项目的主分支相同)
在此之后,所有者对其所有者/项目的主分支进行了一些额外的更改,回购情况如下:
因此,为了避免出现多个分叉,我是否应该对所有者存储库进行git pull?还是我们(我和所有者)共享同一回购协议?
谢谢,
我如何派生一个较旧版本的github项目?我想分叉一个项目的特定提交,这个的提交3b5915a21a997f88fa16a6feb5b893953a06b0b5
项目:https : //github.com/aseprite/aseprite,最近的提交中断了主线。我真的很想叉版本1.1.8。
我分叉了一个 npm 包(https://github.com/spark/particle-api-js),做了一些改变,在一个项目中使用了它(https://github.com/RoomKit/RoomKit-Backend)然后离开了它一会儿。
我今天继续研究它,突然节点声称未安装该软件包。如果我用版本号替换 package.json 中的自定义存储库,它就可以正常工作。在这两种情况下,包都在 node_modules 文件夹中。
我删除了 node_modules 文件夹并运行了npm install. 这没有问题,但在运行时它仍然抱怨。到底是怎么回事?
我通过分支另一个项目创建了一个Azure Devops(VSTS)项目。现在,每当我们克隆新项目时,您都会在控制台输出中获得对原始项目的引用
remote: This repository is a fork. Learn more at https://aka.ms/whatisafork.
remote: To add its upstream as a remote, run:
remote: git remote add upstream <link to original repo>
Run Code Online (Sandbox Code Playgroud)
有没有办法打破这种联系,所以新项目永远不会引用旧项目?
git-fork ×10
git ×9
github ×5
git-clone ×2
pull-request ×2
azure-devops ×1
bitbucket ×1
duplicates ×1
git-branch ×1
git-commit ×1
gitlab ×1
hardlink ×1
linux ×1
node.js ×1
npm ×1