web-dev-qa-db-ja.com

gitエラー:いくつかの参照をプッシュできませんでした

どういうわけか私は今プッシュすることはできませんが、昨日それを行うことができました。たぶん私は設定か何かで台無しにしました。

これが起こるのです:

Git Push Origin masterを使ったとき

gitbashscr

私の作業ディレクトリとリモートリポジトリは次のようになります。

enter image description here

264
leipz

あなたが地元で働いていたときにGitHubレポジトリがそれにプッシュされた新しいコミットを見たなら、私は使うことを勧めます:

git pull --rebase
git Push

完全な構文は次のとおりです。

git pull --rebase Origin master
git Push Origin master

そうすれば、ローカルでコミットしたもの(--rebase部分)を新しく更新されたOrigin/master(またはOrigin/yourBranchgit pull Origin yourBranch)の上で再生できます。

Git Pocket Book6章リベースでのPull の完全な例を参照してください。

私はお勧めします:

git Push -u Origin master

それはあなたのローカルマスターブランチとそのアップストリームブランチの間のトラッキング関係を確立するでしょう。
その後、そのブランチに対する将来のプッシュは、単純なもので実行できます。

git Push

新しいブランチを明示的にプッシュする必要があるのはなぜですか? 」を参照してください。


OPはすでに をリセットしてからコミットを再実行していますOrigin/master

git reset --mixed Origin/master
git add .
git commit -m "This is a new commit for what I originally planned to be amended"
git Push Origin master

pull --rebaseは必要ありません。

注: git reset --mixed Origin/master を使用する場合のgit reset Origin/masterオプションがデフォルトのオプションであるため、--mixedgit resetと書くこともできます。

394
VonC

誰もが試しました:

git Push -f Origin master

これで問題は解決するはずです。

編集: 以下の@Mehdiのコメントに基づいて、私は—force pushingについて何か明確にする必要があります。上記のgitコマンドは最初のコミットに対してのみ安全に動作します。以前にコミット、プル要求、またはブランチが既にあった場合、これはそれをすべてリセットし、それをゼロから設定します。もしそうなら、より良い解決策のための@VonCの詳細な答えを参照してください。

54
cagcak

git initを使い、git add .またはそれに似たものを使ってファイルを追加し、リモートブランチを追加した場合は、リモートにプッシュするためにローカルで何もコミット(git commit -m 'commit message')していないのかもしれません。それが私の問題でした。

29
ironcladmvtm

私は同じ問題を抱えていました。最初のコミットでもコミットをしておらず、それでもプッシュしようとしていたため、この問題が発生していました。

一度私がgit commit -m "your msg"をして、それからすべてがうまく働いた。

18
ppmakeitcount

私はgithubのヘルプでこの問題の解決策を見つけました。

あなたはそれから見ることができます: 非早送りエラーへの対処

それは言います:

これを修正するには、リモートブランチで行った変更を取得してローカルで行った変更とマージします。

$ git fetch Origin
# Fetches updates made to an online repository
$ git merge Origin branch
# Merges updates made online with your local work

あるいは、git pullを使って両方のコマンドを一度に実行することもできます。

$ git pull Origin branch
# Grabs online updates and merges them with your local work
12
Sealter

ブランチの名前を変更してからプッシュします。例:

git branch -m new-name
git Push -u new-name

これは私のために働きました。

7
p8ul

プッシュする前に初期変更をコミットしないことも問題を引き起こします

4
Claw

1)git init

2)git remote add Origin https://gitlab.com/crew-chief-systems/bot

3)git remote -v(現在のリポジトリをチェックするため)

4)git add -A(すべてのファイルを追加します)

5)git commit -m「自分のプロジェクトを追加しました」

6)git pull --rebase Origin master

7)git Push Origin master

4
James Siva

もしあなたがgerritを使っているのなら、これはコミットの不適切なChange-idが原因である可能性があります。 Change-Idを削除して何が起こるのかを確認してください。

4
Jim Sime

プッシュする前に、変更を追加してコミットするか、git Push -f Origin masterを実行する必要があります。

3
Kinnera Reddy

Githubリポジトリにプッシュする前に、必ず変更をコミットしてください。これで問題は解決するかもしれません。

3
Alf Moh

私は以下の手順で修正された、同じ問題に直面していました。

  1. git init

  2. git 追加

  3. git commit -m 'コミットメッセージを追加してください'
  4. git リモートでOriginを追加 https://[email protected]/User_name/sample.git

    (上記のURL https://[email protected]/User_name/sample.git は、あなたのビットバケットプロジェクトのURLを表します)

  5. git プッシュ-u Origin master
1
Divya

私にとって問題は、コミットする前にファイルを追加しなかったことです。

git add .

git commit -m "your msg"

1
Rohitsam

力を与える必要がある

プッシュするだけです--force。

1
Ankit

これが当てはまるかどうかわからないが、私のための修正はgit initの後にローカルで何かをコミットすることでした。それから--set-upstreamを使ってリモートにプッシュしました...

1
user1889992

gitエラー:ローカルリポジトリ名が対応するリモートリポジトリ名と一致する場合にも参照をプッシュできませんでした。リモートリポジトリに変更を取り込む前に、正しいリポジトリペアで作業していることを確認してください。間違ったスペルでローカルリポジトリを削除したい場合は、次の手順に従ってください。

ウィンドウ1からローカルレポジトリを削除します。del/F/S/Q/A .git 2. rmdir .git 3.ローカルフォルダ名を修正する(XXXX02-> XXXX20)か、新しく作成したレポである場合は削除して再作成します。 repo(XXXX02リポジトリ名がXXXX20に変更されました)。 4. git init 5.マッピングされていない場合は、リモートレポジトリで再マップします。 6. git remote originを追加 https://github.com/ / XXXX20.git 7. git Push -u Origin master

0

プロジェクトのgit configファイルを編集して修正することもできます。

それはどこにある?

.git/config

そうでない場合は、最後に次の行を追加してください。

[branch "master"] remote = Origin merge = refs/heads/master

これで私の問題は解決しました

0
Edd
git Push Origin {your_local_branch}:{your_remote_branch}

ローカルブランチとリモートブランチが同じ名前を共有している場合は、ローカルブランチ名を省略できます。単にgit Push {your_remote_branch}を使用してください。そうでなければ、このエラーが発生します。

0
Yitong Feng

私は同じような問題に直面し、私は 受け入れられた答え を試みました。結果は少し異なります。

ローカルリポジトリの編集中に、GitHub Webページのreadme.mdファイルを変更しました。その結果、私がコマンドgit pull --rebase Origin masterを試みるとき、コマンドラインはそれを私に思い出させるでしょう

エラー:リベースで引き出すことはできません:ステージングされていない変更があります。
エラー:それらをコミットまたは隠してください。

したがって、最初にgit stashコマンドを実行してすべての変更されたファイルを保存してから、受け入れられた答えに従う必要があります。その後、ローカルでコミットされたファイルはGithubリポジトリにプッシュされました。最後に、私はgit stash popを実行してステージングされていない変更でそれらのファイルを回復します。

要約すると、私のためのコマンドシーケンスは次のとおりです。

git stash
git pull --rebase Origin master
git Push Origin master
git stash pop

私は現在、受け入れられた答えの下でコメントすることができないので、私はこの質問に答えを加えました。

0
Gary Wang

私の場合、Pushを許可していないのは私のhuskyパッケージでした。

> husky - pre-Push hook failed (add --no-verify to bypass)
> husky - to debug, use 'npm run prepush'
error: failed to Push some refs to 'https://[email protected]/username/my-api.git'

強制的にプッシュするには、git Push Origin master --no-verifyを実行してください。

エラーをデバッグするためにnpm run prepushを実行しましたが、これが原因です。

npm ERR! code ELOCKVERIFY
npm ERR! Errors were found in your npm-shrinkwrap.json, run  npm install  to fix them.
npm ERR!     Invalid: lock file's [email protected] does not satisfy loopback-utils@^0.9.0

npm installを実行してコミットすると、問題は解決します。

0
Jee Mok

私の場合、エディタ(ビジュアルスタジオコード)を閉じることで問題が解決しました。

0
Vasyl Gutnyk

ブランチと同じタグがあり、ブランチをリモートにプッシュしようとしたため、これは私に起こります。

0
Buminda

既存のGitHubリポジトリでディレクトリを初期化しようとしている場合は、必ず変更をコミットしてください。

ファイルを作成してみてください。

touch initial
git add initial
git commit -m "initial commit"
git Push -u Origin master

それは後で削除することができるinitialという名前のファイルを置きます。

この回答がお役に立てば幸いです!がんばろう!

0
Andreas Bigger

ファイルがない場合に起こります。テキストファイルを作成してから、次のコマンドに従ってください

git add .
git commit -m "first commit"
git Push --set-upstream Origin master
0
sushil suthar

新しいブランチを作ることで解決しました:

git checkout -b <nameOfNewBranch>

以前のブランチは新しいブランチに完全に含まれていたので、予想どおりマージする必要はありません。

私の場合、このエラーは、GitLabの私達のバージョンで何らかのメンテナンスが行われていたために起こりました。

0
GreenGiant

ソースツリーユーザのために

最初に初期コミットを行うか、コミットされていない変更がないことを確認してからsourcetreeの横に "REMOTES"があることを確認し、それを右クリックしてから[Originにプッシュ]をクリックします。そこに行きます。

0
Bowie Chang

上記の答えがどれもうまくいかず、あなたが最近ssh-addで何かをめちゃくちゃにした場合もそうです。やってみる

ssh-add -D
0
Abhisek