私は検索して、この質問に答えが見つかりませんでした。Git - 最初にフェッチしないでローカルとリモートを比較しますか?
私はHerokuで動作しているアプリを持っています。私のローカルマシンから 私は一般的に実装し、ちょうど:
git add .
git commit -m "whatever change, I know I can add and commit at the same time..."
git push <the-heroku-repo>
そして、それが上がるとHerokuのアプリでマスターブランチが更新されます。ここまでは順調ですね。
今すぐ。私は、Herokuのレポから自動的にプルを作り、それを更新する別のマシンを持っていたいと思います。
git clone <the-heroku-repo>
私のアプリを取得することを、私はこれでGitの設定を見ることができます:私はちょうどプルを行うことができます。この新しいリポジトリを更新するには
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
[email protected]:theapp.git
branch.master.remote=origin
branch.master.merge=refs/heads/master
だから私はしていることをやります:
git pull origin
または私はフェッチとマージできます。
上記の間git fetch origin
git merge origin/master
私の質問
私がやって変更何であるかを確認することができフェッチやマージ:
git log -p master..origin/master
は、ローカルのmasterブランチと最新の違いを見つける方法はあります前のバージョンを取得せずに遠隔のHerokuレポのバージョン?ローカルとリモートを比較し、変更を確認するだけです。私はちょうど正しい方法を見つけることができません。
ありがとうございました。
フェッチせずに、リモートのリポジトリからの更新を知ることはできません –
'git log'の前に' git fetch origin'を実行することに問題がありますか? –
おそらく、問題は私はフェッチコマンドの定義に基づいています: "git fetchはリモートリポジトリから新しいブランチとデータをダウンロードします"。比較の出力に基づいて、その変更をフェッチしてマージする必要はないと判断したとします。なぜ帯域幅を使用し、リポジトリに不要なものを適用するのでしょうか。再び、多分問題は私です。既存の変更を手前に知っておくことで、できるだけ通話やリソースを節約しようとしています。 – Pod