web-dev-qa-db-ja.com

マスターへの最新のコミットがリモートにプッシュされたかどうかを知る方法は?

私はブランチをマスターにマージしましたが、今ではgit log

しばらく時間が経過したので、以前に(そのコミットで)マスターをリモートにプッシュしたかどうかを知りたい。プッシュされたかどうかはどうすればわかりますか?

リポジトリを別の場所に再クローンする、リセットして確認してから再マージするなど、いくつかの回避策を考えることができますが、おそらくもっと簡単な答えがあると思います。

これはfyiとは異なります ブランチが既にマスターにマージされているかどうかをgitで知るにはどうすればよいですか? マージされたことがわかっているので、リモートプッシュについて知らないだけです。

28
Michael Durrant

行う

> git status

出力が

# On branch master
nothing to commit, working directory clean

次に、現在のコミットをプッシュしました。

代わりに出力が次で始まる場合

# On branch master
# Your branch is ahead of 'Origin/master' by 1 commit.
#   (use "git Push" to publish your local commits)

次に、まだプッシュされていないローカルコミットがあります。これは、リモートブランチOrigin/masterが、最後にOriginにプッシュされたコミットを指しているためにわかります。ただし、ブランチはahead of 'Origin/master'です。つまり、最後にプッシュされたコミットの後に作成されたローカルコミットがあります。

興味のあるコミットが最新でない場合は、行うことができます

> git log --decorate --oneline

問題のコミットがOrigin/masterが指すコミットの前か後かを確認します。
コミットがOrigin/masterより後(ログの上位)の場合、プッシュされていません。

32
Klas Mellbourn

複数のコミットを行い、どれがリモートにプッシュされたかがわからない場合は、次のことを試してください。

git log Origin/<remote-branch>..<local-branch>

例:

git log Origin/master..master

これにより、前述のリモートブランチにプッシュされていないローカルブランチのすべてのコミットがリストされます。

10
somesh

プログラムでそれを行うソリューション:

test "$(git rev-parse @{u})" = "$(git rev-parse HEAD)"

ローカルディレクトリがクリーンかどうかを確認することもできます。コミットされていない変更されたファイルはありません。

test -z "$(git status --porcelain)"

ルールの1つが成立しない場合にスクリプトを終了するには、次のようなコードを使用できます。

test your_condition || (echo "ERROR: you have local changes"; exit 1)
6
VasiliNovikov

これを実行することをお勧めします:

$ git fetch --all
Fetching Origin
Fetching upstream

これにより、すべてのリモートから最新のデータが取得されます。

次に、実行します:

$ git branch -v
  master       ef762af [ahead 3] added attach methods
* testing      4634e21 added -p flag
  upstream     1234567 [ahead 1, behind 7] updated README.md

これにより、どのブランチが先か後ろかがわかります。

他のどの回答もリモートデータのフェッチについて言及していないため、これを投稿しました。そのステップは重要です。

3
asd

git log --graph --all --decorate、各参照が配置されている場所を示します(ヘッド、マスター、オリジン/マスターなど)

2
Vlad Nikitin

これを試して。 git branch -r --contains <sha1>

私のリポジトリのコミットの場合、リモート開発ブランチに存在することがわかります

git branch  -r --contains 7914e54ea7e30c7f446e791df66bd3a5805c978a
Origin/develop
0
crea1