【问题标题】:Issue pushing new code in Github在 Github 中推送新代码的问题
【发布时间】:2014-01-23 05:56:53
【问题描述】:

我在 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 存储库,我因错误而迷失了方向。我搜索了这里提出的其他几个问题,但没有一个是第一次遇到问题。

【问题讨论】:

标签: git github git-push


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    当您创建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
    

    【讨论】:

    • 我在做的是先 git pull origin master 然后再推。
    • 在某些情况下,您可能会收到fatal: refusing to merge unrelated histories,您提交git pull --allow-unrelated-histories origin master,然后按照上面的答案推送
    • 对我不起作用。远程:推送被拒绝。远程:远程:refs/heads/master:...:预期的提交者名称 xxx,但发现 yyy。我做了一个 git config --global user.email yyy ,它仍然无法识别。什么都不能强求!!!
    【解决方案3】:

    如果这是您的第一次推送,那么您可能不会关心遥控器上的历史记录。然后,您可以执行“强制推送”以跳过 git 所做的检查,以防止您覆盖任何现有的或不同的远程工作。小心使用!

    只是改变

    git push **-u** origin master
    

    这样改!

    git push -f origin master
    

    【讨论】:

    • 这删除了我首先放在 github 上的自述文件。现在看来我必须重新来过。
    • 你可以只添加一个警告,即 -f 强制推送并且可能会弄乱代码时间线
    • 这是一个不好的方法,它给我带来了问题,它删除了不是我创建的自述文件,现在我不得不打电话给维护者告诉他我很愚蠢,对不起创建阅读又是我。 :(
    【解决方案4】:

    如果你在 GUI 中使用 git for mac,你可以选择 Respository->Pull 或 "comm+shift+p" 到 "git pull",然后发布源代码。

    【讨论】:

      【解决方案5】:

      使用命令强制推送:

      git push -f origin master
      

      【讨论】:

      • 请注意,这可能会删除过去的提交,这可能是可取的,也可能不是可取的
      【解决方案6】:

      ⚡️ EASY:您所需要的只是强制推动。因为你可能已经在 Github 上创建了readme.md 文件,而你还没有拉取它。

      git push -f origin master
      

      这是一个 GIF。

      ⚠️ 注意:使用force 可以更改同一项目中其他人的历史记录。基本上,如果您不关心每个人都删除文件,请继续。特别是如果您是项目中唯一的开发人员。

      【讨论】:

      • 请注意,此方法会更改此存储库的其他用户已经获取的历史记录。 git push -f origin master 不是一个好习惯。
      • 这个解决方案可能会解决推送提交,但它也会删除所有过去的提交!。
      • 当心 Github 菜鸟...如果您通过 GitHub 创建了 Readme.md,此命令将在推送您的新更改时删除它。
      • 这就是人们登陆这里的主要原因。 -f 标记删除文件,应谨慎使用。
      【解决方案7】:

      考虑到如果您有一段时间没有提交更改,也许这样做对您有用。

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

      这对我有用,希望对你也有用。

      【讨论】:

        【解决方案8】:

        我为这个错误苦苦挣扎了一个多小时!以下是帮助我解决它的方法。所有这一切,而我的工作目录是我在系统上克隆的 repo。

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

        git 拉


        输出是- 一些自述文件 文件 1 文件2

        1. 我将新文件(我想要推送的文件)复制(拖放)到我的克隆存储库(GitHub 存储库)。当你将 ls 这个 repo 时,你应该会看到你的旧文件和新文件。

        例如。一些自述文件 文件 1 文件2 新文件1 新文件2

        1. git add "newfile1" "newfile2"

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


        在分支主 你的分支是最新的'origin/master'。 要提交的更改: (使用“git reset HEAD ...”取消暂存)

            new file:   newfile1
            new file:   newfile2
        

        5.git commit -m "你想给出什么描述" 6.git推送

        我的所有新文件和旧文件都可以在我的仓库中看到。

        【讨论】:

          【解决方案9】:

          当您通过以下 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

          这将解决问题。谢谢。

          【讨论】:

            【解决方案10】:

            我也遇到过类似的问题... 我是这样解决的(我不是 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】:

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

              git pull origin master --allow-unrelated-histories
              

              然后您可以使用此从 repo(readMe.md 或任何)获取其他文件

              git pull origin master
              

              之后

              git push -u origin master
              

              现在您已成功将所有更改推送到 Github 存储库。我不是 git 专家,但每次这些步骤都对我有用。

              【讨论】:

                【解决方案12】:

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

                【讨论】:

                  【解决方案13】:

                  我使用Branches选项,然后右键点击“remote/origin”文件夹,然后点击“delete branch from remote”,如下图:

                  【讨论】:

                    【解决方案14】:

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

                    git fetch
                    git pull
                    git push --no-verify
                    

                    【讨论】:

                      猜你喜欢
                      • 2018-03-28
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2011-09-14
                      • 2022-01-19
                      • 1970-01-01
                      • 2017-12-06
                      • 1970-01-01
                      相关资源
                      最近更新 更多