Egit is based on JGit, and " not-for-merge " is used only in org.eclipse.jgit.transport.FetchHeadRecord
This notForMerge variable of the notForMerge parameter is set in the org.eclipse.jgit.transport.FetchProcess#want method.
fhr.notForMerge = spec.getDestination() != null;
If the endpoint of refspec is not NULL, then this selected HEAD is not for merging.
When you select remote access, the destination of the remote branches is refs/remotes/yourRemote , due to the local configuration for fetch refspec:
[remote "origin"] fetch +refs/heads/*:refs/remotes/origin/*
The only branch that will be selected without a direct destination will be the one that tracks the remote branch:
[branch "master"] remote = origin merge = refs/heads/master
This is why after receiving the JGit repo (on the command line, not in Eclipse Egit), I see:
C:\Users\VonC\prog\git\jgit\.git>type FETCH_HEAD c2a9f9e742f7e6633af130823c154a485e6071b2 branch 'master' of https://github.com/eclipse/jgit 51d1af9489924ff03fa10ec963110c608c2882a3 not-for-merge branch 'stable-0.10' of https://github.com/eclipse/jgit 989149736ad1cd09c15e143aa598028b9f9b6502 not-for-merge branch 'stable-0.11' of https://github.com/eclipse/jgit b2b58feba7400269df8b31ef8495b695af3a9793 not-for-merge branch 'stable-0.12' of https://github.com/eclipse/jgit
Try reproducing this in Egit / JGit (Luna, Egit 3.0, Win7 64-bit):
After several selections, I never see a record without not-for-merge . Even an attraction that would merge new commits from the remote branch would still create FETCH_HEAD with:
220c4502ecea147ef4beaae8039b168965e148e9 not-for-merge branch 'master' of ..\..\jgit
I assume that the behavior of JGit is different in this aspect.