强制从一个脱节的本地仓库推送Git / GitHub

时间:2015-10-23 18:15:53

标签: git github

我的手上真的很乱。我有一个我拥有的私人GitHub仓库,是我唯一的贡献者/维护者。因此,无论解决我的问题需要什么样的hackery,只会影响我,而不会影响其他人。

这是我的情况:

  1. 我的GH回购是,https://github.com/mygithubuser.example.com/myapp.git。我有myapp的本地克隆,例如~/sandbox/workspace/myapp
  2. 我删除了~/sandbox/workspace/myapp/.git(实际上将其与git / GitHub断开连接)并将其重命名为~/sandbox/workspace/myapp-old
  3. 我在~/sandbox/workspace/myapp本地创建了一个新的准系统应用项目。
  4. new myapp目录中,我做了:(a)git init,(b)git add .,(c)git commit -m "Starting over again."
  5. 我现在想以某种方式将新的本地myapp仓库连接到https://github.com/mygithubuser.example.com/myapp.git的我的GitHub仓库,然后用新本地myapp中的所有内容彻底清除远程仓库中的所有内容。 1}} repo。
  6. 所以再一次,我想迫使GH允许从我的新myapp回购推送覆盖我远程GH回购中的所有

    我们必须假装myapp-old,虽然它在我的机器上本地存在,但不能成为任何解决方案的一部分。我们必须假装它不再存在。

    我找到了this answer,但它不适合我。我能做什么?我可以运行什么样的Git命令行调用来完成我正在寻找的东西?

    请注意, 是一个特定的原因,为什么我需要完全按照我的要求去做。解释为什么要求我进入一个非常漫长的背景故事,这个故事会变得枯燥乏味,并且会使这个问题成为低调/近距离投票的有力候选人。所以请不要问我“你为什么这样做?” - 或“你为什么不只是X”!我保证你有充分的理由。

1 个答案:

答案 0 :(得分:0)

在这个睡了一晚之后,它只是恍然大悟在我身上(没有双关语意)最好的解决方案是什么。在这里发布任何未来的git-newbs同样的困境。

  1. 从Git(~/sandbox/workspace/myapp
  2. 断开新的仓库(rm -rf .git
  3. 以我想要的方式获得新的回购
  4. 重命名新的回购(例如mv ~/sandbox/workspace/myapp ~/sandbox/workspace/meh
  5. 将GH回购克隆到myappgit clone https://github.com/mygithubuser.example.com/myapp.git),是的,生成另一个 ~/sandbox/workspace/myapp,基于旧版
  6. 将更改从/meh复制到myapp
  7. ...
  8. 利润