首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有可能完全清空远程Git存储库?

是否有可能完全清空远程Git存储库?
EN

Stack Overflow用户
提问于 2011-02-07 21:58:19
回答 5查看 71.7K关注 0票数 56

假设我在第一次推送远程Git存储库时犯了一个错误。我能以某种方式将其恢复到存储库的初始状态吗?我无法访问远程计算机,因此无法删除.git目录。

问题是,据我所知,你不能“解除”头部。

这就是我所做的(或者实际上是我的一位同事询问了这一点)(我在这里做了一个本地的“远程”repo,这样任何人都可以测试它):

代码语言:javascript
复制
mkdir git-remote
cd git-remote
git init --bare
cd ..
mkdir git-local
cd git-local
git clone ../git-remote .
touch a
git add a
git commit -m "initial"
git push origin master

在这一点上,他意识到他把错误的东西推送到了远程存储库。

我唯一的想法是从他的repo && git rm && git推送中删除所有内容,这仍然会将错误的提交留在那里,但是文件不会麻烦第二次推送。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-02-08 01:08:49

我想你可能有XY问题。实际上,您不需要将远程存储库恢复到其原始状态才能重新开始;您只需在本地重新开始,然后强制将其推送到远程。

代码语言:javascript
复制
# create a new repository that has the initial commit that you want
mkdir foo; cd foo; git init; ...; git commit

# set up a remote
git remote add origin <url-of-remote>
git branch --set-upstream master origin/master

# push your new history
git push -f

# delete obsolete remote branches
git push origin :deprecated-branch

远程存储库永远不会返回到无提交状态,但它最终会到达您想要的位置,这才是最重要的!

(在引擎盖下,旧的提交实际上仍然在远程存储库中,但它们仍然悬空,没有引用指向它们。当git gc --auto在某个时刻被推送触发时,它们将被自动删除。)

如果您真的真的想清空它,您可以在远程存储库中设置receive.denyDeleteCurrent,并推送删除所有分支,包括当前分支。不过,我不明白为什么你真的需要这么做!

票数 85
EN

Stack Overflow用户

发布于 2011-02-08 00:11:37

当你说“第一次推送”时,你是指第一次推送到分支吗?因为在你推送它之前,它里面根本没有代码。如果是这样的话…

如果您第一次想要将本地分支foo推送到远程分支,您可以这样做:

代码语言:javascript
复制
git push origin foo:foo

为了删除远程分支foo,您告诉git向其推送"nothing“:

代码语言:javascript
复制
git push origin :foo

现在,您可以随心所欲地重新开始。

老实说,我不确定服务器上实际剩下了什么--但就完全重置分支历史而言,这是可行的。

(fwiw,我认为这个界面非常可笑)

票数 3
EN

Stack Overflow用户

发布于 2020-03-27 20:17:19

下面的步骤将很容易做到这一点,在需要的情况下要小心进行主备份。

代码语言:javascript
复制
mkdir  reset
cd reset
 git init
 touch README.md
 git add .
 git commit -m 'Initial commit'
 git remote add origin git@github.com:XXX/xxx.git
 git push --force --set-upstream origin master
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4922104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档