2088

リモートリポジトリにまだプッシュされていない、自分が行ったローカルコミットを表示するにはどうすればよいですか?ときどき、git status私のブランチがXコミットの前にあることを出力しますorigin/masterが、常にではありません。

これはGitのインストールのバグですか、それとも何かが足りませんか?

4

27 に答える 27

2113
git log origin/master..HEAD

同じ構文を使用して差分を表示することもできます

git diff origin/master..HEAD
于 2010-01-06T22:50:30.377 に答える
792

まだプッシュされていないすべてのブランチのすべてのコミットを見たい場合は、次のようなものを探しているかもしれません:

git log --branches --not --remotes

また、各ブランチの最新のコミットとブランチ名のみを表示したい場合は、次のようにします。

git log --branches --not --remotes --simplify-by-decoration --decorate --oneline
于 2010-07-26T20:36:39.503 に答える
356

ローカルにあるがアップストリームにはないすべてのコミットを表示できます

git log @{u}..

@{u}または@{upstream}、現在のブランチのアップストリームブランチを意味します(git rev-parse --helpまたはgit help revisionsを参照)。

于 2011-11-18T12:19:21.563 に答える
226

これは私のために働いた:

git cherry -v 

Gitで示されているように: See all unpushed commits or commits that are not in another branch .

于 2013-12-17T01:15:32.580 に答える
81

あなたはこれを行うことができますgit log

git log origin/master..

originこれは、がアップストリーム リモートmasterの名前であり、アップストリーム ブランチの名前であると想定しています。後にリビジョン名を..省略するHEADと、プッシュされていない新しいコミットが一覧表示されます。

于 2010-01-06T22:46:35.607 に答える
46

私は以前にコミットを行いましたが、どのブランチにもプッシュされず、リモートでもローカルでもありませんでした。コミットだけ。他の回答からは何もうまくいきませんでしたが、次の場合:

git reflog

そこで私のコミットを見つけました。

于 2017-03-17T11:40:21.407 に答える
43

現在のブランチでプッシュされていないコミットを探すための便利な git エイリアス:

alias unpushed = !GIT_CURRENT_BRANCH=$(git name-rev --name-only HEAD) && git log origin/$GIT_CURRENT_BRANCH..$GIT_CURRENT_BRANCH --oneline

これが基本的に行うこと:

git log origin/branch..branch

現在のブランチ名も決定します。

于 2011-03-03T09:34:58.880 に答える
38

あなたは試すことができます....

gitk

これが純粋なコマンド ライン オプションではないことは承知していますが、インストールして GUI システムを使用している場合は、探しているものに加えて、さらに多くの機能を正確に確認するための優れた方法です。

(実際、これまで誰も言及していないことにちょっと驚いています。)

于 2014-01-27T21:04:33.970 に答える
32

git branch -vローカルブランチごとに、それが「進んでいる」かどうかが表示されます。

于 2015-06-20T11:08:11.663 に答える
23

次のエイリアスを使用して、コミットされたがプッシュされていないファイル (およびステータス) のリストのみを取得します (現在のブランチの場合)。

git config --global alias.unpushed \
"diff origin/$(git name-rev --name-only HEAD)..HEAD --name-status"

次に、次のようにします。

git unpushed
于 2012-07-20T19:24:54.093 に答える
13

これを行う最も一般的な方法は、次のようなものを実行することだと思います。

git cherry --abbrev=7 -v @{upstream}

しかし、私は個人的に実行することを好みます:

git log --graph --decorate --pretty=oneline --abbrev-commit --all @{upstream}^..

これは、アップストリームにマージされていないすべてのブランチからのコミットと、アップストリームの最後のコミット(他のすべてのコミットのルートノードとして表示されます)を示します。私はそれを頻繁に使用するので、そのエイリアスnoupを作成しました。

git config --global alias.noup \
'log --graph --decorate --pretty=oneline --abbrev-commit --all @{upstream}^..'
于 2012-02-09T11:37:44.923 に答える
9

これはバグではありません。おそらく表示されるのは、リモートからの変更がフェッチされたがまだマージされていない自動マージが失敗した後の git ステータスです。

ローカル リポジトリとリモート間のコミットを表示するには、次のようにします。

git fetch

これは 100% 安全で、作業コピーをモックアップしません。変更があった場合はgit status表示されX commits ahead of origin/masterます。

ローカルではなくリモートにあるコミットのログを表示できるようになりました。

git log HEAD..origin
于 2010-01-06T22:47:11.503 に答える
8

これは私にとってはうまくいきました:

git log --oneline @{upstream}..

また:

git log --oneline origin/(remotebranch)..
于 2015-06-17T18:20:09.627 に答える
7

すべてのブランチでプッシュされていないすべてのコミットを簡単に一覧表示するには、次のコマンドを使用できます。

 git log --branches  @{u}..
于 2015-05-20T08:59:54.927 に答える
7

指定された作業ディレクトリ内のすべての Git、Mercurial、および Subversion リポジトリをスキャンし、ucommited ファイルと unpushed コミットのリストを表示するunpushedという名前のツールがあります。Linux でのインストールは簡単です。

$ easy_install --user unpushed

また

$ sudo easy_install unpushed

システム全体にインストールします。

使い方も簡単です:

$ unpushed ~/workspace
* /home/nailgun/workspace/unpushed uncommitted (Git)
* /home/nailgun/workspace/unpushed:master unpushed (Git)
* /home/nailgun/workspace/python:new-syntax unpushed (Git)

詳細についてはunpushed --help、または公式の説明を参照してください。またunpushed-notify、コミットされていない変更やプッシュされていない変更を画面上で通知するための cronjob スクリプトもあります。

于 2012-04-26T18:04:43.547 に答える
4

やり方の 1 つは、あるブランチでは利用できるが別のブランチでは利用できないコミットを一覧表示することです。

git log ^origin/master master
于 2015-11-04T13:18:17.703 に答える
4

プッシュされていないコミットの数が 1 桁の数字である場合 (よくあることですが)、最も簡単な方法は次のとおりです。

$ git checkout

git は、オリジンに対して「N コミット進んでいる」ことを伝えることで応答します。したがって、ログを表示するときは、その数を覚えておいてください。「コミットが 3 つ進んでいる」場合、履歴の上位 3 つのコミットはまだ非公開です。

于 2014-05-01T19:49:42.170 に答える
-5
git diff origin

ブランチがオリジンを追跡するように設定されていると仮定すると、違いが表示されるはずです。

git log origin

コミットの概要を提供します。

于 2010-01-06T22:46:17.010 に答える