Githubリポジトリのクローンを作成しましたが、ローカルで変更を加えていません。 Githubリポジトリは、同じブランチでのコミットにより前進しました。
1)比較するリモートリポジトリを追加します。
git remote add foobar git://github.com/user/foobar.git
2)リモートのローカルコピーを更新します。
git fetch foobar
Fetchは作業コピーを変更しません。
3)ローカルリポジトリのブランチを追加したリモートと比較します。
git diff master foobar/master
あなたの質問への別の返信(あなたがマスターであり、リモートの変更についてレポを認識させるためにすでに「git fetch Origin」を実行していると仮定します):
1)ローカルブランチが作成されたときからリモートブランチでコミットします:
git diff HEAD...Origin/master
2)「作業コピー」とは、まだリモートにないいくつかのローカルコミットを含むローカルブランチを意味すると想定しています。ローカルブランチにはあるがリモートブランチには存在しないものの違いを確認するには、以下を実行します。
git diff Origin/master...HEAD
3)dbyrneの answer を参照してください。
この例は誰かを助けるかもしれません:
注「Origin
」は、リモートの「Githubにあるもの」のエイリアスです
注「mybranch
」は、githubと同期しているブランチ「what is local」のエイリアスです
-ブランチ名を作成していない場合、ブランチ名は「マスター」です。ただし、ブランチ名パラメーターが使用されている場所を示すために、別の名前mybranch
を使用しています。
GitHubのリモートリポジトリとは何ですか?
$ git remote -v
Origin https://github.com/flipmcf/Playground.git (fetch)
Origin https://github.com/flipmcf/Playground.git (Push)
「同じコードの他のgithubリポジトリ」を追加します-これをフォークと呼びます:
$ git remote add someOtherRepo https://github.com/otherUser/Playground.git
$git remote -v
Origin https://github.com/flipmcf/Playground.git (fetch)
Origin https://github.com/flipmcf/Playground.git (Push)
someOtherRepo https://github.com/otherUser/Playground.git (Push)
someOtherRepo https://github.com/otherUser/Playground.git (fetch)
ローカルリポジトリが最新であることを確認します。
$ git fetch
いくつかのものをローカルで変更します。ファイル./foo/bar.pyとしましょう
$ git status
# On branch mybranch
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: foo/bar.py
コミットされていない変更を確認する
$ git diff mybranch
diff --git a/playground/foo/bar.py b/playground/foo/bar.py
index b4fb1be..516323b 100655
--- a/playground/foo/bar.py
+++ b/playground/foo/bar.py
@@ -1,27 +1,29 @@
- This line is wrong
+ This line is fixed now - yea!
+ And I added this line too.
ローカルでコミットします。
$ git commit foo/bar.py -m"I changed stuff"
[myfork 9f31ff7] I changed stuff
1 files changed, 2 insertions(+), 1 deletions(-)
今、私はリモートとは異なります(github上)
$ git status
# On branch mybranch
# Your branch is ahead of 'Origin/mybranch' by 1 commit.
#
nothing to commit (working directory clean)
これをリモートでdiff-あなたのフォーク:(これはgit diff master Origin
で頻繁に行われます)
$ git diff mybranch Origin
diff --git a/playground/foo/bar.py b/playground/foo/bar.py
index 516323b..b4fb1be 100655
--- a/playground/foo/bar.py
+++ b/playground/foo/bar.py
@@ -1,27 +1,29 @@
- This line is wrong
+ This line is fixed now - yea!
+ And I added this line too.
(git Pushでこれらをリモートに適用します)
私のリモートブランチは、リモートマスターブランチとどのように違いますか?
$ git diff Origin/mybranch Origin/master
私のローカルのものは、リモートマスターブランチとどう違うのですか?
$ git diff Origin/master
私のものは他の誰かのフォーク、同じレポのマスターブランチとどう違うのですか?
$git diff mybranch someOtherRepo/master