如何清空 Github 代码仓库并将代码作为 Pull Request 提交?

4

在Github上有一个空的私人存储库(我可以访问它),我将我的代码推送到其中。 现在所有者要求我清空存储库并将我的代码作为拉取请求发送。 有人能帮我清空存储库并将我的代码作为拉取请求发送吗? 提前感谢您的帮助。


你是如何将代码推送到另一个人的私有仓库的?之前你有写入权限吗?现在没有了吗? - bitoiu
2
如果你的意思是仓库真的是空的,那么我不认为需要发起一个拉取请求,但如果必须这样做,那么你需要创建一个新分支,要么在主分支上撤销你的更改,要么清除它们并再次提交干净的代码,将更改后的代码提交到你的新分支上,然后创建一个拉取请求。如果你对Git还很陌生,那么按情况逐个搜索会非常容易。 - Aaron Critchley
@bitoiu 我有权使用它,只是我错误地推送了我的代码。我需要将其拉回。 - Mina
按照 @AaronCritchley 所说的去做。 - bitoiu
1个回答

7

我相信我有一个相似的问题... “如何使用全新存储库发起拉取请求?”

为了做到这一点,我的想法是创建两个本地分支:

  1. 更新代码的分支
  2. 空分支

那么你的问题就是“对于空分支,如何覆盖现有代码”?好吧,你不能。只有在提交时才能拥有远程存储库。它不能真正为空。为了处理这个问题,只需创建一个带有初始化的单个提交。稍后,你会看到我使用 rebase 构建新添加的初始提交。

解决方案 - 这是我做的方式,假设两件事情:

  1. 我有现有的代码,不想篡改
  2. 具有最新代码的当前分支是 master。

命令说明:

git checkout -b new # assuming "new" is your latest code for pull request to an empty repo
git branch -D master
git checkout -b master # create a fresh master
touch emptyfile; git add .; git commit -m "init commit"
git push origin master
git checkout new
git rebase master # If you're confused by what rebase does, try doing your own little research on it
git push origin new

现在你可以从new分支合并到master分支了!你只需要在此之后删除emptyfile即可。


这就像我们被“老板”(或者至少是我)要求的那些奇怪的问题之一,而他们甚至不完全理解正在发生的全部细节。 - dtc
1
如果您在提交时使用 --allow-empty 参数,可以跳过 touch emptyfile; git add. 步骤:git commit --allow-empty -m "init commit" - nyi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接