Githubに新しいコードをプッシュする際の問題


147

Readme.mdファイルのみのGithubに新しいリポジトリを作成しました。

このリポジトリにプッシュしたい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リポジトリにプッシュするのは今回が初めてで、エラーが発生して迷っています。ここで尋ねられた他のいくつかの質問を検索しましたが、それらのどれも初めて問題がありませんでした。


回答:


167

あなたが作成したときのGitHubにリポジトリを、あなたが作成したREADME.mdで、新しいコミットを

ローカルリポジトリはこのコミットをまだ認識していません。したがって:

リモートにはローカルにはない作業が含まれているため、更新は拒否されました。

次のアドバイスに従うことをお勧めします。

git pull再度プッシュする前に、最初にリモートの変更( ' 'など)をマージすることができます。

あれは:

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

3
私がやっていることは、最初にgit pull origin masterを実行し、次にもう一度pushすることです。
Bagusflyer 14

12
場合によってはfatal: refusing to merge unrelated histories、このような場合にを取得する可能性があります。送信してgit pull --allow-unrelated-histories origin masterから、上記の回答に従ってプッシュします
TheLebDev

1
うまくいきません。リモート:プッシュが拒否されました。リモート:リモート:refs / heads / master:...:コミッター名xxxが必要ですが、yyyが見つかりました。私はgit config --global user.email yyyを実行しますが、それでも認識されません。何も強制できません。!!!
Baruch Atta

284

これが最初のプッシュの場合

ただ変える

git push **-u** origin master

このように変更してください!

git push -f origin master

5
これにより、最初にgithubに置いたreadmeファイルが削除されました。もう一度やり直さなければならないようです。
ジャックブランク

3
-fが強制的にプッシュし、コードのタイムラインを
乱す

これは悪い方法です。問題が発生し、私が作成したものではないreadmeが削除されました。今度はメンテナに連絡して、私が愚かであることを知らせてください。:(
Mohammad Elsayed

62

⚡️EASY:必要なのは強制プッシュだけです。readme.mdGithubでファイルを作成した可能性があり、まだプルしていません。

git push -f origin master

そして、これがGIFです。

git push -f originマスター

⚠️ 用心:使用すると、force同じプロジェクトの他の人々のために歴史を変えることができます。基本的に、誰にとってもファイルが削除されることを気にしない場合は、先に進んでください。特にあなたがプロジェクトの唯一の開発者である場合。


1
このアプローチは、このリポジトリの他のユーザーがすでにフェッチした履歴を変更することに注意してください。git push -f origin master形成するのは大きな習慣ではありません。
Johnsyweb 2017

1
このソリューションはプッシュコミットを解決する可能性がありますが、過去のコミットもすべて削除します!。
twenk11k

2
Github noobsに注意してください... GitHubを介してReadme.mdを作成した場合、このコマンドは新しい変更をプッシュするときに削除します。
daCoda

人々がここに上陸するのはそのためです。-fタグはファイルを削除するため、注意して使用する必要があります。
Ahmad Awais

34

次のコマンドで強制プッシュを発行します。

git push -f origin master

10
または望ましいであってもなくてもよい、これは過去のコミットを削除する場合があります
Crashalot

8

githubが提供するインターフェースを介してReadme.mdファイルを追加したと仮定すると、readmeはまだローカルフォルダーにありません。したがって、ローカルリポジトリにreadmeファイルがないため、リモートリポジトリにプッシュしようとすると、エラーが発生します。これは、いわば「時代遅れ」です。したがって、エラーメッセージで提案されているように、最初に「git pull」を試してください。これにより、readmeがリモートリポジトリから取得され、ローカルディレクトリにマージされます。その後、リモートリポジトリにプッシュしても問題ないはずです(投稿したコマンドは私には有効に見えます)。


6

これは、最初にプッシュしようとしたときに発生します。GitHubリポジトリにreadMe.mdまたはローカルリポジトリにないその他の新しいものが含まれているためです。最初に、githubリポジトリの無関係な履歴をマージする必要があります。

git pull origin master --allow-unrelated-histories

その後、これを使用して他のファイルをrepo(readMe.mdまたはany)から取得できます

git pull origin master

その後

git push -u origin master

これで、すべての変更がGithubリポジトリに正常にプッシュされました.gitの専門家ではありませんが、これらのステップが機能するたびに、


5

変更をしばらくコミットしていない場合を考えれば、おそらくこれでうまくいくでしょう。

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

それは私にとってうまくいきました、うまくいけばあなたにとってもうまくいきます。


3

GUIでMac用のgitを使用する場合は、Respository-> Pullまたは「comm + shift + p」を選択して「git pull」してからソースを公開できます。


3

このエラーは、次の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

これで問題が解決します。ありがとう。


1

私は同様の問題を抱えていました...私はそれをこのように解決しました(私は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

0

このエラーに1時間以上も苦労しました!以下は私がそれを解決するのに役立ったものです。この間、私の作業ディレクトリは、システムに複製したリポジトリでした。

既存のリポジトリにファイルを追加している場合** 1.自分のリポジトリに追加したものをすべてGitHubフォルダにプルしました。

git pull


出力はいくつかのreadmeファイルfile1 file2でした

  1. 新しいファイル(プッシュしたいファイル)を複製​​したリポジトリ(GitHubリポジトリ)にコピー(ドラッグアンドドロップ)しました。このリポジトリをlsすると、古いファイルと新しいファイルが表示されます。

例えば。一部のreadmeファイルfile1 file2 newfile1 newfile2

  1. git add "newfile1" "newfile2"

  2. [オプション] git statusこれにより、追加するファイルが適切にステージングされているか、出力されなかったかが保証されます


ブランチマスター上ブランチは 'origin / master'で最新です。コミットする変更:(「git reset HEAD ...」を使用してステージングを解除します)

    new file:   newfile1
    new file:   newfile2

5.git commit -m「あなたが伝えたい説明は何でも」6.git push

そして、古いファイルと一緒に私のすべての新しいファイルは私のリポジトリで見られました。


0

より簡単な答えは、README.MDファイルをコンピューターからGitHubに手動でアップロードすることです。私にとってはとてもうまくいきました。



0

Azure Gitでこのエラーが発生し、これで問題が解決します。

git fetch
git pull
git push --no-verify
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.