一次奇怪的 github 测试

2016-12-02 15:39:55 +08:00
 lancegin

• 在用户 A 名下新建仓库:

userA/repo

• 克隆到本地:

local/repo 

• 将用户 A 名下的 repo transfer 给用户 B:

userA/repo -> userB/repo

• 现在远端和本地的情况分别是:

remote : userA/repo(不存在) , userB/repo

local : local/repo (.git/config 中的 remote url 为 git@github.com:userA/repo.git) 

• 接下来三个测试

在 local/repo 提交 commit 并 push

commit 居然成功的 push 到 userB/repo 中

注意此时的 local/repo/.git/config 中的 remote url 是指向 userA/repo 的

将 userB/repo 克隆到本地并查看.git/config 中的 remote url

当然毫无疑问的 remote url 为 git@github.com:userB/repo.git

在用户 A 名下新建同名仓库 userA/repo, 接着从 local/repo 提交 commit 然后 push

commit 也能 push 成功,但是却又出乎意料的出现到了 userA/repo 中

这应该是 github 出于好意设计出的仓库向前同步的功能,但如果真出现了 3 的情况,估计会疑惑到很大一批人。

1690 次点击
所在节点    程序员
6 条回复
Arnie97
2016-12-03 17:11:00 +08:00
这个问题很难权衡啊,如果要保留重定向功能,又不出现 3 的情况,应该只能禁止 A 在 transfer 后建立同名 repo 了吧。
此外,这个实验其实不需要两个 GitHub 用户, repo 改名后也会把原名重定向到新的地址。
lancegin
2016-12-03 17:57:46 +08:00
@Arnie97 确实, repo 的 transfer 和 rename 在这里是同一种情况,我个人偏向于取消重定向的功能,毕竟林子大了什么鸟都有😅
sxul07
2016-12-09 19:53:19 +08:00
@lancegin 理论上你只能 push 你私有的 repo …所以有什么问题吗?
lancegin
2016-12-09 21:16:11 +08:00
@sxul07 假设你是 userA , userB 是你本人的 organization
sxul07
2016-12-09 22:28:50 +08:00
@lancegin 我知道…但是感觉问题不大啊…一般来说只有所有者可以做 transfer 啊…就算有重定向也没啥问题吧…会有人搞事情么= =
lancegin
2016-12-10 08:18:21 +08:00
@sxul07 一个 organization 的所有 owner 都是可以 transfer 的,就是担心会有不太了解这些的然后在原 user 下来建了同名 repo ,这就要玩完 2333333

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/324847

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX