web-dev-qa-db-ja.com

Git Pushは何もしません(すべて最新です)

GitHubでGitリポジトリを更新しようとしています。たくさんの変更を加え、それらを追加し、コミットしてからgit Pushを実行しようとしました。応答は、すべてが最新であることを教えてくれますが、明らかにそうではありません。

git remote show Origin

私が期待するリポジトリで応答します。

リポジトリに表示されないローカルコミットがある場合、Gitがリポジトリが最新であると表示するのはなぜですか?

  [searchgraph]  git status
# On branch develop
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       Capfile
#       config/deploy.rb
nothing added to commit but untracked files present (use "git add" to track)

  [searchgraph]  git add .

  [searchgraph]  git status
# On branch develop
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       new file:   Capfile
#       new file:   config/deploy.rb
#

  [searchgraph]  git commit -m "Added Capistrano deployment"
[develop 12e8af7] Added Capistrano deployment
 2 files changed, 26 insertions(+), 0 deletions(-)
 create mode 100644 Capfile
 create mode 100644 config/deploy.rb

  [searchgraph]  git Push
Everything up-to-date

  [searchgraph]  git status
# On branch develop
nothing to commit (working directory clean)
91
Jamie Wong

これは、ステージング中にSourceTreeアプリケーションがクラッシュしたときに起こりました。また、コマンドラインでは、以前のgit addが破損しているように見えました。その場合は、次を試してください。

git init
git add -A
git commit -m 'Fix bad repo'
git Push

最後のコマンドで、ブランチを設定する必要がある場合があります。

git Push --all Origin master

分岐などを行っていない場合は、これで十分であることに注意してください。その場合は、git Push Origin developなどの正しいブランチにプッシュしてください。

22
Vik

試してください:

git Push --all Origin
13
asandroq

最後のコミットに移動してからgit Push Origin HEAD:masterを実行してください。

9

現時点では、開発ブランチにいるように見えます。オリジンに開発ブランチがありますか?そうでない場合は、git Push Origin developを試してください。 git Pushは、Originの開発ブランチについて知ると機能します。

さらに読むと、 git-Pushのmanページ 、特に例のセクションをご覧ください。

4
theIV

具体的には、マスターに何かをマージする場合、以下の手順を実行できます。

git add --all // If you want to stage all changes other options also available
git commit -m "Your commit message"
git Push // By default when it clone is sets your Origin to master or you would have set sometime with git Push -u Origin master.

これは、プルリクエストモデルで新しいローカルブランチに作成し、そのブランチをリモートにプッシュする一般的な方法です。そのためには、リモートで変更をプッシュする場所を指定する必要があります。これを行うには、プッシュ時にリモートに言及します。

git Push Origin develop // It will create a remote branch with name "develop".

ローカルブランチ名以外のブランチを作成する場合は、次のコマンドを使用して作成できます。

git Push Origin develop:some-other-name
3
Manu

私の場合、他のソリューションはどれも機能しませんでした。新しい変更されたファイル(git statusで表示)のバックアップを作成し、git reset --hardを実行する必要がありました。これにより、リモートサーバーとの再調整が可能になりました。新しい変更されたファイルの追加、および実行

git add .
git commit -am "my comment"
git Push

トリックをしました。これが「最後のチャンス」の解決策として誰かを助けることを願っています。

2
Andrea

これは、GitHubに^Cの途中でgit Pushしたときに私に起こりました。ただし、GitHubは変更が行われたことを示しませんでした。

それを修正するために、作業ツリーに変更を加え、コミットしてから再度プッシュしました。完璧に機能しました。

2
helsont

これは私に起こりました。変更を再コミットしただけで、プッシュされました。

1
user742102

ここで定義したものを含む多くの方法を試しました。私が得たのは、

  • リポジトリの名前が有効であることを確認してください。最善の方法は、リポジトリサイトからリンクをコピーしてgit bashに貼り付けることです。

  • 選択したファイルをコミットしたことを確認してください。

    git commit -m "Your commit here"
    
  • 両方の手順が機能しない場合は、試してください

    git Push -u -f Origin master

1
Developer Here

サムストークスに感謝します。彼の答えによると、別の方法で問題を解決できます(私はこの方法を使用しました)。開発ディレクトリを更新した後、再初期化する必要があります

git init

その後、更新をコミットしてマスターにプッシュできます

1
Nadir Hajiyev

また、正しいブランチにプッシュしていることを確認してください。

0
Brian

代わりに、次を試すことができます。 masterに移動する必要はありません。ブランチ自体から変更を直接プッシュすることができます。

上で説明したように、リベースを行うと、ブランチの履歴が変更されます。その結果、リベース後に通常のgit Pushを実行しようとすると、サーバー上のコミットからブランチ上のコミットへの直接のパスがないため、Gitはそれを拒否します。代わりに、-fフラグまたは--forceフラグを使用して、Gitに、はい、自分が何をしているのかを本当に知っていることを伝える必要があります。強制プッシュを行う場合、Push.default config設定をsimpleに設定することを強くお勧めします。これはGit 2.0のデフォルトです。設定が正しいことを確認するには、次を実行します。

$ git config --global Push.default simple

正しくなったら、次を実行できます。

$ git Push -f

プルリクエストを確認します。更新する必要があります!

詳細については、プルリクエストのリベース方法の一番下に移動してください。

0
JumpMan