<p>Is it even possible?</p>

<p>Basically, there's a remote repository from which I pull using just:</p>

<pre><code>git pull
</code></pre>

<p>Now, I'd like to preview what this pull would change (a diff) without touching anything on my side. The reason is that thing I'm pulling might not be "good" and I want someone else to fix it before making my repository "dirty".</p>

I think
git fetch
is what your looking for.
It will pull the changes and objects without committing them to your local repo's index.
They can be merged later with
git merge
.
Man Page
Edit: Further Explination
Straight from the
Git- SVN Crash Course
link
Now, how do you get any new changes from a remote repository? You fetch them:
```
```
git fetch http://host.xz/path/to/repo.git/
```
```
At this point they are in your repository and you can examine them using:
```
```
git log origin
```
```
You can also diff the changes. You can also use
git log HEAD..origin
to see just the changes you don't have in your branch.  Then if would like to merge them - just do:
```
```
git merge origin
```
```
Note that if you don't specify a branch to fetch, it will conveniently default to the tracking remote.
Reading the man page is honestly going to give you the best understanding of options and how to use it.
I'm just trying to do this by examples and memory, I don't currently have a box to test out on. You should look at:
```
```
git log -p //log with diff
```
```
A fetch can be undone with
git reset --hard
(
link
) , however all uncommitted changes in your tree will be lost as well as the changes you've fetched.