Optimize file updates in fetch scenarios

Two optimizations:
1. In FetchWithoutConflict, use update-ref to avoid double update
2. Skip the subsequent update in PerformDeployment

Also, removed remoteAlias param, which is implementation detail
Add test coverage for fancier fetch scenarios