A colleague has a stash in their repository which I can access (via the filesystem), and I'd like to pull that stash into a branch in my repository.
% git ls-remote ~alice/work/repo/ stash 3ccc82fb1ee0e7bde1250c7926d333ce21c109c0 refs/stash
But when I try to fetch that, git tells me "unable to find 3cc82..."
% git fetch ~alice/work/repo stash:new_branch remote: Total 0 (delta 0), reused 0 (delta 0) error: unable to find 3ccc82fb1ee0e7bde1250c7926d333ce21c109c0 fatal: object 3ccc82fb1ee0e7bde1250c7926d333ce21c109c0 not found
Is there a way I can fetch the remote stash?
Yes, you can, partially. The stash is just another ref. You can fetch refs which are not heads (branches) by specifying a refspec with the full ref path.
You can configure this up to fetch the stash when you run an ordinary fetch, too:
But this will fail if there is no stash with a "Invalid refspec" as the ref doesn't exist, so you're probably better off doing it on demand. You could set up an alias like:
The caveat is that you cannot fetch multiple stashes. These are stored as entries in the reflog, and you cannot fetch a remote's reflog.
You can't but this provides you an alternate path. is-it-possible-to-push-a-git-stash-to-a-remote-repository
Update: A direct answer to the original poster's question is:
'tempbranch' will be at the latest stash (stash@{0}) from the remote. Unfortunately I don't think the reflog is fetched from remote branches, so there is no way to get at the other stashes, unless you have access to the source repo.
Scripting it: I posted a more comprehensive 'scripted' solution over at the mentioned question
Is it possible to push a git stash to a remote repository?
Also, as I discovered in the meantime, git-send-pack can be instrumental if you have access to the source repo: