どういうわけか私は今プッシュすることはできませんが、昨日それを行うことができました。たぶん私は設定か何かで台無しにしました。
これが起こるのです:
Git Push Origin masterを使ったとき
私の作業ディレクトリとリモートリポジトリは次のようになります。
あなたが地元で働いていたときにGitHubレポジトリがそれにプッシュされた新しいコミットを見たなら、私は使うことを勧めます:
git pull --rebase
git Push
完全な構文は次のとおりです。
git pull --rebase Origin master
git Push Origin master
そうすれば、ローカルでコミットしたもの(--rebase
部分)を新しく更新されたOrigin/master
(またはOrigin/yourBranch
:git pull Origin yourBranch
)の上で再生できます。
Git Pocket Book の 6章リベースでの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
オプションがデフォルトのオプションであるため、--mixed
はgit reset
と書くこともできます。
誰もが試しました:
git Push -f Origin master
これで問題は解決するはずです。
編集: 以下の@Mehdiのコメントに基づいて、私は
—force pushing
について何か明確にする必要があります。上記のgitコマンドは最初のコミットに対してのみ安全に動作します。以前にコミット、プル要求、またはブランチが既にあった場合、これはそれをすべてリセットし、それをゼロから設定します。もしそうなら、より良い解決策のための@VonCの詳細な答えを参照してください。
git init
を使い、git add .
またはそれに似たものを使ってファイルを追加し、リモートブランチを追加した場合は、リモートにプッシュするためにローカルで何もコミット(git commit -m 'commit message'
)していないのかもしれません。それが私の問題でした。
私は同じ問題を抱えていました。最初のコミットでもコミットをしておらず、それでもプッシュしようとしていたため、この問題が発生していました。
一度私がgit commit -m "your msg"
をして、それからすべてがうまく働いた。
私は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
ブランチの名前を変更してからプッシュします。例:
git branch -m new-name
git Push -u new-name
これは私のために働きました。
プッシュする前に初期変更をコミットしないことも問題を引き起こします
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
もしあなたがgerritを使っているのなら、これはコミットの不適切なChange-idが原因である可能性があります。 Change-Idを削除して何が起こるのかを確認してください。
プッシュする前に、変更を追加してコミットするか、git Push -f Origin master
を実行する必要があります。
Githubリポジトリにプッシュする前に、必ず変更をコミットしてください。これで問題は解決するかもしれません。
私は以下の手順で修正された、同じ問題に直面していました。
git init
git 追加
git リモートでOriginを追加 https://[email protected]/User_name/sample.git
(上記のURL https://[email protected]/User_name/sample.git は、あなたのビットバケットプロジェクトのURLを表します)
私にとって問題は、コミットする前にファイルを追加しなかったことです。
git add .
git commit -m "your msg"
力を与える必要がある
プッシュするだけです--force。
これが当てはまるかどうかわからないが、私のための修正はgit initの後にローカルで何かをコミットすることでした。それから--set-upstreamを使ってリモートにプッシュしました...
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
プロジェクトのgit configファイルを編集して修正することもできます。
それはどこにある?
.git/config
そうでない場合は、最後に次の行を追加してください。
[branch "master"] remote = Origin merge = refs/heads/master
これで私の問題は解決しました
git Push Origin {your_local_branch}:{your_remote_branch}
ローカルブランチとリモートブランチが同じ名前を共有している場合は、ローカルブランチ名を省略できます。単にgit Push {your_remote_branch}
を使用してください。そうでなければ、このエラーが発生します。
私は同じような問題に直面し、私は 受け入れられた答え を試みました。結果は少し異なります。
ローカルリポジトリの編集中に、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
私は現在、受け入れられた答えの下でコメントすることができないので、私はこの質問に答えを加えました。
私の場合、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
を実行してコミットすると、問題は解決します。
私の場合、エディタ(ビジュアルスタジオコード)を閉じることで問題が解決しました。
ブランチと同じタグがあり、ブランチをリモートにプッシュしようとしたため、これは私に起こります。
既存のGitHubリポジトリでディレクトリを初期化しようとしている場合は、必ず変更をコミットしてください。
ファイルを作成してみてください。
touch initial
git add initial
git commit -m "initial commit"
git Push -u Origin master
それは後で削除することができるinitialという名前のファイルを置きます。
この回答がお役に立てば幸いです!がんばろう!
ファイルがない場合に起こります。テキストファイルを作成してから、次のコマンドに従ってください
git add .
git commit -m "first commit"
git Push --set-upstream Origin master
新しいブランチを作ることで解決しました:
git checkout -b <nameOfNewBranch>
以前のブランチは新しいブランチに完全に含まれていたので、予想どおりマージする必要はありません。
私の場合、このエラーは、GitLabの私達のバージョンで何らかのメンテナンスが行われていたために起こりました。
ソースツリーユーザのために
最初に初期コミットを行うか、コミットされていない変更がないことを確認してからsourcetreeの横に "REMOTES"があることを確認し、それを右クリックしてから[Originにプッシュ]をクリックします。そこに行きます。
上記の答えがどれもうまくいかず、あなたが最近ssh-add
で何かをめちゃくちゃにした場合もそうです。やってみる
ssh-add -D