问题
I have a local repo and a remote repo on github. For business reasons, they aren't in sync. I've done a lot of work on the local that I'm keeping, and now I'm manually adding whatever's new to the remote, to my local. There are no branches.
When I use the command,
git diff --color master..origin/master
I get good results, showing what changed.... what I have added to the local repo is marked with a - sign, and is shown in red; while what is on the remote is shown in green with + signs.
Is there a way to show only what is new on the remote and not on the local? That is, show me any new files on the remote and show me any new or modified lines in files on the remote (show me all the green +'s)
thanks.
回答1:
I believe you can put 3 dots between the two branches in the command and then it does only whats new in the second with respect to the first, i.e.
git diff master...feature
to see what's new on feature, and
git diff feature...master
to see what's new on master. In your case feature can be origin/master
and that should work fine.
回答2:
You can diff with the common ancestor:
git diff `git merge-base master origin/master` origin/master
Or with your previous fetch:
git diff origin/master@{1} origin/master
回答3:
Try looking at git help rev-list
. The option you are probably looking for is --right-only
, so maybe this gets you what you want:
git diff --color --right-only master..origin/master
来源:https://stackoverflow.com/questions/14670265/git-diff-show-only-whats-new-on-the-remote