Rozumiem, że chcesz połączyć zmiany z branch_1 do mastera, tak?
Będąc na branchu master wykonaj git merge branch_1, wtedy zmiany zostaną ‘wcielone’ w mastera
To jak zacommitujesz zmiany na branch_1 to nie zostana one nadpisane. Chyba że będą konflikty, ale wtedy to ty mergujesz. Mozesz sobie poeksperymentowac lokalnie jesli wszystkie zmiany ktore chcesz zachować masz wysłane na serwer. Dopóki nie zrobisz git push to repozytorium zdalnego nei popsujesz.
Wszystkie powyższe odpowiedzi są jak najbardziej prawidłowe. Ja preferuję git rebase i polecam poczytać i zrozumieć jak działa ten mechanizm.
Poza tym w git można odtworzyć każdą operacje poza jednym wyjątkiem git reset --hard. Trudne jest też odtworzenie operacji po git rebase, lecz nie jest niemożliwe(tutaj clue to git reflog).
PROtip: Nie polecam korzystania z komendy git add -A lub git add . ponieważ nie posiada się kontroli nad tym co się staguje. bardzo przydatną komendą jest git add --patch
Dodatkowo proponuję zaznajomić się z jakąś nakładką na shella(np. https://github.com/robbyrussell/oh-my-zsh), która dodaje wiele przydatnych aliasów do shella związanych z gitem. alias | grep git - można podejrzeć zdefiniowane aliasy do gita
Ogólnie polecam szczerze podniesienia umiejętności posługiwania się gitem, gdyż jak sam zauważyłem duża większość ludzi skupia się na tych totalnie podstawowych komendach przez co potem mają trudności w rozplątaniu się z konfliktów itp.