J'ai cloné un référentiel github et je n'ai apporté aucune modification localement. Le référentiel Github a été déplacé avec des validations sur la même branche.
1) Ajoutez tous les référentiels distants que vous souhaitez comparer:
git remote add foobar git://github.com/user/foobar.git
2) Mettez à jour votre copie locale d'une télécommande:
git fetch foobar
Fetch ne changera pas votre copie de travail.
3) Comparez toutes les branches de votre référentiel local à celles que vous avez ajoutées:
git diff master foobar/master
Une autre réponse à vos questions (en supposant que vous soyez sur le maître et que vous avez déjà "git fetch Origin" pour vous tenir au courant des modifications à distance):
1) Commit sur une branche distante depuis la création de la branche locale:
git diff HEAD...Origin/master
2) Je suppose que par "copie de travail", vous entendez votre branche locale avec des commits locaux qui ne sont pas encore distants. Pour voir les différences entre ce que vous avez sur votre branche locale mais cela n’existe pas sur une branche distante:
git diff Origin/master...HEAD
3) Voir le réponse par dbyrne.
Cet exemple pourrait aider quelqu'un:
Remarque "Origin
" est mon alias pour la télécommande "Ce qui est sur Github"
Remarque "mybranch
" est mon alias pour ma branche "ce qui est local" que je synchronise avec github
- Le nom de votre branche est "maître" si vous n'en avez pas créé. Cependant, j'utilise le nom différent mybranch
pour indiquer où le paramètre du nom de branche est utilisé.
Quels sont exactement mes dépôts à distance sur github?
$ git remote -v
Origin https://github.com/flipmcf/Playground.git (fetch)
Origin https://github.com/flipmcf/Playground.git (Push)
Ajoutez les "autres dépôts github du même code" - nous appelons cela un fork:
$ 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)
assurez-vous que notre rapport local est à jour:
$ git fetch
Changer des trucs localement. disons fichier ./foo/bar.py
$ git status
# On branch mybranch
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: foo/bar.py
Consultez mes modifications non validées
$ 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.
S'engager localement.
$ git commit foo/bar.py -m"I changed stuff"
[myfork 9f31ff7] I changed stuff
1 files changed, 2 insertions(+), 1 deletions(-)
Maintenant, je suis différent de ma télécommande (sur github)
$ git status
# On branch mybranch
# Your branch is ahead of 'Origin/mybranch' by 1 commit.
#
nothing to commit (working directory clean)
Diff this avec remote - votre fork: (souvent avec 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 pour les appliquer à distance)
En quoi ma branche distante diffère-t-elle de la branche maître distante?
$ git diff Origin/mybranch Origin/master
Comment mes données locales diffèrent-elles de la branche maître distante?
$ git diff Origin/master
En quoi mes affaires diffèrent-elles de celles de quelqu'un d'autre, branche principale du même dépôt?
$git diff mybranch someOtherRepo/master