it-roy-ru.com

git diff между клонированным и оригинальным удаленным репозиторием

Я клонировал репозиторий GitHub и не вносил никаких изменений локально. Репозиторий Github переместился вперед с коммитами в той же ветке.

  1. Как мне найти разницу между моим локальным хранилищем и исходным хранилищем github?
  2. Как найти разницу между моей рабочей копией и исходным хранилищем github?
  3. Как мне найти разницу между моим локальным репозиторием и другим github-репозиторием того же проекта?
163
Gemseeker

1) Добавьте любые удаленные репозитории, которые вы хотите сравнить:

git remote add foobar git://github.com/user/foobar.git

2) Обновите локальную копию пульта:

git fetch foobar

Fetch не изменит вашу рабочую копию.

3) Сравните любую ветку из вашего локального репозитория с любым удаленным, который вы добавили:

git diff master foobar/master
157
dbyrne

Еще один ответ на ваши вопросы (при условии, что вы являетесь мастером и уже выполнили "git fetch Origin", чтобы вы знали о удаленных изменениях в репозитории):

1) Фиксирует в удаленном филиале с момента создания локального филиала:

git diff HEAD...Origin/master

2) Я предполагаю, что под "рабочей копией" вы подразумеваете вашу локальную ветку с некоторыми локальными коммитами, которые еще не находятся на удаленном компьютере. Чтобы увидеть различия между тем, что у вас есть в вашей локальной ветке, но не существует при запуске удаленной ветви:

git diff Origin/master...HEAD

3) Смотрите ответ по dbyrne.

45
Ruslan Kabalin

Этот пример может помочь кому-то:

Обратите внимание: "Origin" - мой псевдоним для удаленного "Что на Github"
Примечание. "mybranch" - это мой псевдоним для моей ветви "что является локальным", которую я синхронизирую с github
- название вашей ветви "master", если вы ее не создавали. Однако я использую другое имя 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)

Откажитесь от этого с помощью пульта дистанционного управления (это часто делается с помощью 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.

(нажми Push, чтобы применить их к удаленному)

Чем моя удаленная ветка отличается от удаленной главной ветки?

$ git diff Origin/mybranch Origin/master

Чем мой локальный материал отличается от удаленной главной ветки?

$ git diff Origin/master

Чем мои вещи отличаются от чужих форков, мастер веток того же репо?

$git diff mybranch someOtherRepo/master
19
FlipMcF