"forking"的功能是否特定于github?或者是否有一个纯粹的git进程来创建可以从父级获取更新的"复制"子级存储库?如果是这样,怎么样?
编辑:我必须git clone对当时的情况感到困惑.这是我的理解,git clone就是我在我的机器上做的事情,以获取存储库的本地副本以进行更改commit,以及push从中进行更改.我们目前正在用gitosis主办我们的回购.所以,如果我想要一个'fork',我会在gitosis服务器本身(在原点)克隆存储库?这会创建一个新的git地址吗?
好的,我还没有找到更好的方法来标题我的问题.解释方案更容易.但请记住这是一个Github问题,而不是 Prototype-JS问题(请不要为我添加标签)
我正在研究基于Prototype的Web应用程序.我发现1.7.1(对作者没有责备)有一些令我们讨厌的错误.幸运的是,对于我们来说,所有这些错误确实通过已经被主分支接受的拉取请求进行公开修复.
我的老板和我讨论了为我们发现的每个不兼容性修补Prototype 1.7.1之间的选择,我们同意在即将生产的应用程序中使用"开发"版本不是最好的选择,所以我们的想法是修补我们的Prototype版本.
我对此负责.因为我想跟踪我的公司应用于Prototype的变化(即使我是唯一一个触摸JS文件的人),我想以一种有效的方式来做,可以留给后代.
Github允许您将任何项目分成您自己的工作区,以便您可以随意使用它.我想通过实际将它们链接到对原始项目的现有拉取请求来跟踪我导入Prototype的补丁.
鉴于Github上的一个通用开源项目,我已经分叉了,有没有什么方法可以找到提交给原始分支的pull请求,并选择在我自己的fork中"导入"它(假设文件应该是diff-兼容)这样它将被应用到我的分支?
当然,随着时间的推移,这使我能够跟踪记录(通过评论和讨论)关于我选择在我的分支中导入哪些 PR 以及哪些 PR没有.
我现在在一个使用TFS和Git的项目中.而且我意识到我不再能够分叉了,所以我想我会问你们你们对此的看法是一个解决方案.
我遇到的问题是我有一个"基础"项目.这将重新用于我们拥有的每个客户.但每个客户都有一定程度的修改(约5-10%).
我计划将项目"A"分叉到"Client_A"并进行所需的更改.可以进行更改的所有类是"A"中抽象类的实现,因此只要满足依赖性,我就能够同步新版本的A.
我现在的问题是不支持Forking,我们之前在团队中使用了bitbucket.但是既然我们现在已经与公司其他部门整合在一起,那么我们需要运行其他人正在运行的东西......
这就是我在想的事情......
git clone http://mycompany.com/tfs/MyDefaultCollection/My Git Projects/_git/A
cd A
git fetch origin
git branch -a
git checkout -b a_branch1 origin/a_branch1
git checkout -b a_branch2 origin/a_branch2
git checkout -b a_branchN origin/a_branchN
git branch -a
git remote add new-origin http://mycompany.com/tfs/MyDefaultCollection/My Git Projects/_git/Client_A
git push --all new-origin
git push --tags new-origin
git remote rm origin
git remote rename new-origin origin
Run Code Online (Sandbox Code Playgroud)
如果我这样做,我还能上游到A吗?
我正在对github项目进行重大更改,几乎从头开始重写,并希望分享我的贡献.我应该总是使用fork还是可以创建一个新的存储库?
更多细节:我正在从Winforms重写为WPF一个完全放弃的项目.这是一个来自微软的旧样本,有人只是将它复制到github,相同的代码没有任何改进.大约有5个叉子,都是无关紧要的,过去12个月内只有1个提交(不相关).
我为此创建一个全新的存储库是否有意义?从旧存储库中分叉会给某人带来任何好处,还是只会让人感到困惑?另外,如果我更改名称空间,这是否合乎道德?
我已经分叉了一个github存储库,提交了一个提交(标题Some small changes),提交了一个pull请求,它被合并到主存储库中(提交标题Some small changes (#12),其中#12是pull请求号).到现在为止还挺好.
现在,当我想更新我的fork(git rebase upstream/master见这里)时,我在我的存储库中有两次这样的提交.先是Some small changes一次又一次Some small changes (#12).如果我创建一个新的pull请求,Some small changes则会再次将提交添加到pull请求中.
有两种方法可以解决此问题:
这两种情况都涉及重写我的历史并不得不强制推动.在提交拉取请求时,是否有更好的方法使fork保持同步?
有一个已经由数十个用户分叉的特定存储库。但是,大多数都处于非活动状态。仍处于活动状态的那些将可能在master之前有n次提交。但是,当我单击fork时,我可以看到所有派生的用户,但是无法选择活动的用户。
有没有办法查看谁在主动或谁在主动之前做出了承诺?
我有一个github配置文件,我把某人的存储库分成了我的.在本地我已经克隆了这个存储库
git clone https://github.com/my-github-page/repo-name
Run Code Online (Sandbox Code Playgroud)
现在,由于一段时间过去了,原来的回购所有者已经更新了他的回购,但我的落后.所以,如果我愿意git pull将他的变化合并到我的.但我想把我的变化从当地推到我的.
简单来说,如果我这样做,git remote show origin我得到这个:
[root@localhost xxx]# git remote show origin
* remote origin
Fetch URL: https://github.com/my-github-profile/xxx
Push URL: https://github.com/my-github-profile/xxx
HEAD branch: master
Remote branches:
1.0 tracked
master tracked
system_tests tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (up to date)
Run Code Online (Sandbox Code Playgroud)
现在我想将FETCH URL更改为repo的原始src.因为原件已更新,但我的叉子落后了
我使用Git Fork作为我的 Git 客户端。最近我对 Node JS 的安装做了一些更改。这样做之后,我所有的预提交挂钩都会抛出一个错误,指出npm: command not found.
我可以从终端使用 NPM,但由于某种原因 Git Fork 无法找到它。有谁知道为什么?
更具体地说,如何判断磁盘上的存储库的来源是否是某个存储库的分支?我认为这应该是一些 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 上,但我不能这样做,也不想这样做,因为存储库不是'我的。