Поиск разницы между двумя хранилищами git
Я разветкил репозиторий git проекта на Github и внес свои изменения в него.
Я хотел получить разницу между моим хранилищем и оригиналом
хранилище, которое я разветкил. Может кто-нибудь сказать мне команду git
получить этот diff?
Мне нужно представить diff для обзора.
Оригинальный репозиторий:
git://github.com/apache/hive.git
Мой репозиторий:
[email protected]:prafullat/hive.git
Вот подробности из моего .git/config
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = [email protected]:prafullat/hive.git
[remote "mirror"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git://github.com/apache/hive.git
Я попытался взглянуть на другие опубликованные вопросы по той же теме и
не мог заставить его работать.
Любая помощь будет высоко оценена.
Ответы
Ответ 1
Сделать commit sha1 вручную и использовать их в diff
решили проблему!
[[email protected] .git] $cd refs/remotes/
[[email protected] remotes] $cat origin/trunk
1c4fa827f4fad2aad67a4fa5b57d88afe51d1559
[[email protected] remotes] $cat mirror/trunk
14f5fb7cba7bef466727a5b721c7c202e80e5dfd
[[email protected] remotes] $git diff 14f5fb7cba7bef466727a5b721c7c202e80e5dfd 1c4fa827f4fad2aad67a4fa5b57d88afe51d1559
.......
.... diff follows!.......
Ответ 2
Вам нужно получить последние из удаленных репозиториев и сравнить основные ветки друг с другом. Похоже, что основной веткой является ветвь "магистрали", поэтому вы можете видеть, какие коммиты уникальны для вашего проекта (а не в ветке соединительной линии проекта "mirror" ) следующим образом:
$ git log --oneline origin/trunk ^mirror/trunk
1c4fa82 1. Modified the flag name for gb_to_idx rewrite to hive.ql.rewrite.gb_to_idx So
638be54 Merge branch 'trunk' of [email protected]:prafullat/hive into trunk
72c8220 HIVE-1383. Allow HBase WAL to be disabled (John Sichi via Ning Zhang)
a372259 Checking in commented meta-data methods in GbToCompactSumIdxRewrite. It has to be unc
33c1fb1 Fixing some files due to wrong application of patch. Build now compiles !
5942728 Reverting files which were patched twice in last checkin.
5efda04 Adding inital rewrite changes. This patch adds basic query rewrite support to Hive. I
3fce190 Merge branch 'trunk' of git://github.com/apache/hive into trunk
b3f9ff2 Checking in commented meta-data methods in GbToCompactSumIdxRewrite. It has to be unc
d89deb9 Fixing some files due to wrong application of patch. Build now compiles !
11db7da Reverting files which were patched twice in last checkin.
88fee30 Adding inital rewrite changes.
ba7703f Some part of last check-in got missed.
2c5c5ae Checking initial changes for Hive indexing from He Yongqiang (Hive-417) Here is descr
Или вы можете удалить --oneline
, чтобы просмотреть полные сообщения о фиксации. Похоже, они все твои. Вы также можете добавить --no-merges
, если вы не хотите видеть эти коммиты слияния.
Затем вы можете получить фактический diff, выполнив это:
$ git diff --stat mirror/trunk...origin/trunk
README.txt | 4 +-
build.xml | 1 +
.../java/org/apache/hadoop/hive/conf/HiveConf.java | 1 +
ivy/ivysettings.xml | 4 +-
metastore/if/hive_metastore.thrift | 12 +-
.../apache/hadoop/hive/metastore/api/Index.java | 15 +-
.../hive/metastore/api/ThriftHiveMetastore.java | 671 +++++++++++++++++++-
metastore/src/gen-php/hive_metastore_types.php | 30 +-
.../hadoop/hive/metastore/HiveMetaStore.java | 155 ++++-
.../hadoop/hive/metastore/HiveMetaStoreClient.java | 9 +-
.../hadoop/hive/metastore/IMetaStoreClient.java | 14 +
.../hadoop/hive/metastore/MetaStoreUtils.java | 31 +
(bunch more lines)
ql/src/test/queries/clientpositive/index_compact.q | 13 +
.../test/queries/clientpositive/index_projection.q | 13 +
ql/src/test/queries/clientpositive/index_summary.q | 13 +
.../queries/clientpositive/ql_rewrite_gbtoidx.q | 9 +
.../results/clientpositive/index_compact.q.out | 70 ++
.../clientpositive/ql_rewrite_gbtoidx.q.out | 211 ++++++
.../primitive/PrimitiveObjectInspectorUtils.java | 29 +-
57 files changed, 4000 insertions(+), 131 deletions(-)
Если вы удалите --stat
, вы получите фактический diff. ...
между mirror/trunk
и origin/trunk
является сокращением, говорящим, что вы хотите разницу между общим предком, поэтому он не дает вам отличия, удаляющую все, добавленное в исходный проект с момента его запуска, оно просто дает вы вносили изменения в свою ветку.
Ответ 3
В этом есть недостаток, если кто-то снова столкнется с этим вопросом.
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = [email protected]:prafullat/hive.git
[remote "mirror"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git://github.com/apache/hive.git
Всякий раз, когда вы выполняете зеркало git fetch, он перезаписывает ту же удаленную ветвь в ваших .git/refs/remotes. Убедитесь, что вы изменили выбор удаленного зеркала, чтобы отобразить новое имя.
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = giturl
[remote "mirror"]
fetch = +refs/heads/*:refs/remotes/mirror/*
url = giturl
Тогда простая
git diff origin/master..mirror/master
Ответ 4
git diff origin/master mirror/master
Что-то вроде этого должно сделать трюк.
Ответ 5
Один недостаток вышеприведенных подходов заключается в том, что они различают определенную пару ветвей. Если вы хотите найти все коммиты, где ваше местное репо отличается от удаленного - по всем ветвям, которые вы, возможно, создали, даже если некоторые из них еще не объединены в мастер, вы можете сделать следующее:
git log --branches --not --remotes