2014-08-27 49 views
0

我想清除远程存储库并推送新文件。如何在git中清除远程存储库?

我正在逐渐

git commit -m "fix" 
# HEAD detached from 0027561 
nothing to commit, working directory clean 

,并没有什么推到了遥控器。

我试图git init,但它没有奏效。

我该怎么做?

+0

#HEAD detached from 0027561 没有提交,工作目录清理 – Burak 2014-08-27 12:54:30

+0

您需要创建一个新分支并推送到远程,请参阅@ VonC的答案。 – gravetii 2014-08-27 12:54:52

+1

@ hjpotter92不知道OP是否想要专门做推力... – gravetii 2014-08-27 12:55:19

回答

2

你可以做一个新的分支

git checkout -b newBranch 
git push -u origin newBranch 

如果要更新母版现有的分支,你可以变基上主的顶新的分支:

git rebase master 
git checkout master 
git merge newBranch 
git push heroku master 

我更喜欢到直接签出master,或者强制master到新分支(git branch -f master newBranch),因为它考虑了新提交同时在主服务器上完成的情况(意思是“在提交完成分离的HEAD时”)

+0

我不想做一个新的分支。我的分支是Heroku的主人,我想留在同一个名字 – Burak 2014-08-27 12:55:38

+0

@Burak没问题,你可以只结账主人,除非你想提交新的更改,在这种情况下,你需要重新绑定你的新分支。 – gravetii 2014-08-27 12:56:42

+0

但是,如果我结帐,我会失去在本地更改的文件吗? – Burak 2014-08-27 12:57:11

0

清除存储库(远程或本地)是不是你可以在git中实际做的事情。不知道你为什么要这样做。 Git init在本地创建一个新的存储库。如果您在现有存储库上运行它,它将会失败。

你得到的错误是关于你的本地HEAD被分离,这意味着你实际上并不在一个分支上,可能是因为你之前做过的事情,你拒绝在你的问题中提及。如果你做一个git状态它会告诉你这个。

通过签出一个分支来解决这个问题:git checkout master应该可以在拥有主分支的大多数存储库上工作。这让你回到主分支。

提交并不实际推送到远程。所以,即使你没有分离,仍然不会远程发送你的提交,但它只会在你的.git目录中的本地git仓库中创建提交。

一旦你有一个实际的分支与一个实际的提交,你可以尝试推送到远程存储库。我假设你确实有一个,并且你在某个时候克隆了它。如果你这样做了,它通常被称为'origin',你需要将提交从本地主分支推送到原始分支。

git push通常会完成这项工作。如果失败,一个git push - all(所有分支)或一个git push origin master(只是主分支)。