jon*_*ohn 7 git fork dvcs github git-fork
"forking"的功能是否特定于github?或者是否有一个纯粹的git进程来创建可以从父级获取更新的"复制"子级存储库?如果是这样,怎么样?
编辑:我必须git clone对当时的情况感到困惑.这是我的理解,git clone就是我在我的机器上做的事情,以获取存储库的本地副本以进行更改commit,以及push从中进行更改.我们目前正在用gitosis主办我们的回购.所以,如果我想要一个'fork',我会在gitosis服务器本身(在原点)克隆存储库?这会创建一个新的git地址吗?
分叉在Github上相当于一个简单的git clone,但在fork的情况下它更像是一个git clone --mirror.
你可能不想真正这样做.git中的分支是非常好的和轻量级的,实际上没有理由不在现在的存储库中创建分支.我可以想到用gitosis存储库执行此操作的唯一原因是为了使访问控制变得有趣,如果您有一个连续部署或者从一个gitosis存储库中提取并且您想要提交相同代码的提交权限但是不要不希望他们能够写入已部署的那个.对于所有其他用途,您应该在分支上创建分支git branch并完成所有工作.或者,您可能希望克隆github存储库,然后让团队在您的中央gitosis体系结构中工作.
鉴于预警,以您描述的方式创建"分叉"的最简单方法是在gitosis服务器上创建一个单独的存储库.因此,使用另一个名称设置另一个存储库 - 例如,如果您的原始存储库是gitosis@server:repo1.git您将设置另一个存储库gitosis@server:repo1-fork.git.添加您想要访问的任何用户.
然后你将克隆存储库:git clone gitosis@server:repo1.git它将repo的完整副本放入./repo1.要将其从本地版本复制到分叉存储库,您可以执行此操作git push gitosis@server:repo-fork.git --mirror.
# clone wanted repo
git clone https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
# cd into created folder
cd ORIGINAL_REPOSITORY
# rename `origin` remote (original repo url) to `upstream`
git remote rename origin upstream
# add your remote repository as `origin`
git remote add origin https://github.com/my_user/my_repository.git
# when want to pull from upstream just
git pull upstream main
# when want to create upstream pull-request just
# https://git-scm.com/docs/git-request-pull
# commit-hash - from where to start pull request
git request-pull commit-hash git@github.com:my_user/my_repository.git
Run Code Online (Sandbox Code Playgroud)
每当您git clone创建存储库时,您实际上就创建了一个分叉。GitHub 的 fork 功能所做的唯一一件事就是使克隆成为 GitHub 存储库,其中包含网页、图表和统计数据以及所有这些好东西。
此外,当您克隆存储库时,Git 会自动将原始存储库设为默认的 \xe2\x80\x9cupstream\xe2\x80\x9d 存储库(远程称为origin)。因此,开箱即用,git pull无需争论,应直接从原始内容中提取。
| 归档时间: |
|
| 查看次数: |
5942 次 |
| 最近记录: |