I'd like to provide a team of some non-technical Windows (=direct mode) users with the following git-shell scripts to make collaboration safer than with plain "sync":

1) **update-changes-from-others.sh** -- Like sync, but don't commit any local changes. Merge them like sync, don't discard.

2) **sync-all-but-deletes.sh** -- Like sync but don't commit any deletions (-> renames may become additions).

3) **discard-all-my-changes.sh** -- Forcibly discard all local changes, then checkout and get latest master head.

Any pointers on how to approach implementing these safely?
