• 在用户 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 为 [email protected]: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 为 [email protected]:userB/repo.git
在用户 A 名下新建同名仓库 userA/repo, 接着从 local/repo 提交 commit 然后 push
commit 也能 push 成功,但是却又出乎意料的出现到了 userA/repo 中
这应该是 github 出于好意设计出的仓库向前同步的功能,但如果真出现了 3 的情况,估计会疑惑到很大一批人。
囧
1
Arnie97 2016-12-03 17:11:00 +08:00 via Android
这个问题很难权衡啊,如果要保留重定向功能,又不出现 3 的情况,应该只能禁止 A 在 transfer 后建立同名 repo 了吧。
此外,这个实验其实不需要两个 GitHub 用户, repo 改名后也会把原名重定向到新的地址。 |
2
lancegin OP @Arnie97 确实, repo 的 transfer 和 rename 在这里是同一种情况,我个人偏向于取消重定向的功能,毕竟林子大了什么鸟都有😅
|