发布在Github中推送新代码的问题

时间:2014-01-05 21:51:42

标签: git github git-push

我在Github上创建了一个新的存储库,它现在只有Readme.md文件。

我有一个新创建的RoR项目,我想将其推送到此存储库。 以下是我在终端中执行的命令以及我得到的错误。

git remote add origin https://github.com/aniruddhabarapatre/learn-rails.git

之后我输入了用户名和密码

git push -u origin master

错误---

To https://github.com/aniruddhabarapatre/learn-rails.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/aniruddhabarapatre/learn-rails.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first merge the remote changes (e.g.,
hint: 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

这是我第一次将我的代码推送到Github存储库,而我却错过了错误。我在这里搜索了一些其他问题,但没有一个问题第一次出现。

14 个答案:

答案 0 :(得分:267)

如果这是你的第一次推送

只需更改

即可
git push **-u** origin master

像这样改变它!

git push -f origin master

答案 1 :(得分:153)

创建your repository on GitHub后,您创建了README.md,即a new commit

您的本地存储库尚未了解此提交。因此:

  

更新被拒绝,因为遥控器包含您所做的工作   没有本地。

您可能希望遵循以下建议:

  

您可能希望首先合并远程更改(例如,   'git pull')再推一次。

那是:

git pull
# Fix any merge conflicts, if you have a `README.md` locally
git push -u origin master

答案 2 :(得分:48)

答案 3 :(得分:32)

使用以下命令发出强制推送:

git push -f origin master

答案 4 :(得分:8)

假设您通过github提供的界面添加了Readme.md文件,则自述文件尚未在您的本地文件夹中。因此,当您尝试推送到远程仓库时,您会收到错误,因为您的本地仓库缺少自述文件 - 它可能“落后于时代”,可以这么说。因此,正如错误消息中所建议的那样,首先尝试“git pull”。这将从远程存储库中提取自述文件并将其与本地目录合并。之后,你应该没有问题推送到远程仓库(你发布的命令看起来对我有效)。

答案 5 :(得分:5)

如果您暂时没有提交更改,可能这样做对您有用。

git add files
git commit -m "Your Commit"
git push -u origin master

这对我有用,希望它也适合你。

答案 6 :(得分:5)

当您尝试最初推送时会发生这种情况。因为在您的GitHub仓库中有readMe.md或任何其他不在您本地仓库中的新东西。首先,你必须合并你的github repo的无关历史。要做到这一点

git pull origin master --allow-unrelated-histories

然后你可以使用这个

从repo(readMe.md或任何)获取其他文件
git pull origin master

之后

git push -u origin master

现在你成功将所有更改推送到Github repo。我不是git的专家,但每次这些步骤都适合我。

答案 7 :(得分:3)

如果您在GUI中使用git for mac,您可以选择Repository-> Pull或" comm + shift + p" to" git pull n#34;首先,然后发布源。

答案 8 :(得分:1)

按照git命令将数据从本地目录推送到远程git存储库时会发生此错误:git push -u origin master

由于本地目录和git远程目录的文件存在冲突。

解决方案:

将所有文件提交到分段后,请按照以下步骤操作。

  1. 从远程存储库中获取文件,因为它与本地工作目录冲突。

    • git pull <remoter-url> <branch-name>
  2. 再次提交更改。

    • git add -A
    • git commit -m ‘<comment>'
  3. 在两个目录中提交合并文件后,您可以使用

    • git push -u origin master
  4. 这将解决问题。感谢。

答案 9 :(得分:0)

我在这个错误中挣扎了一个多小时!以下是帮助我解决它的原因。所有这一切,而我的工作目录是克隆在我的系统上的回购。

如果您要将文件添加到现有存储库** 1.我将添加到我的存储库的所有内容都放到了我的GitHub文件夹中:

git pull

输出是 - 一些自述文件 文件1 file2的

  1. 我将我的新文件(我想要推送的文件)复制(拖放)到我的克隆存储库(GitHub repo)。如果您将使用此回购,您应该会看到旧的和新的文件。
  2. 例如。一些自述文件 文件1 文件2 newfile1 newfile2

    1. git add&#34; newfile1&#34; &#34; newfile2&#34;

    2. [可选] git状态 这将确保您要添加的文件是否正确上演 输出是

    3. 在分支主机上 您的分支机构是最新的&origin; /&#39;。 要提交的更改:   (使用&#34; git reset HEAD ...&#34;取消暂停)

          new file:   newfile1
          new file:   newfile2
      

      5.git commit -m&#34;无论你想给出什么描述&#34; 6.git推送

      我的所有新文件以及旧文件都出现在我的回购邮件中。

答案 10 :(得分:0)

我有类似的问题...... 我这样解决了(我不是一个git专家所以我不知道它是否是一个正确的解决方案,但它对我有用):

git pull origin master --allow-unrelated-histories
git merge origin origin/master
git rm README.md
git commit -m 'removed readme.md'
git push origin master

答案 11 :(得分:0)

一个简单的答案是将README.MD文件从您的计算机手动上传到GitHub。对我来说很好。

答案 12 :(得分:0)

我使用“分支”选项,然后右键单击“远程/原始”文件夹,然后单击“从远程删除分支”,请参见下图:

the image

答案 13 :(得分:0)

我在Azure Git上遇到此错误,这解决了问题:

git fetch
git pull
git push --no-verify