Насколько я понимаю, если вы создаете ветку локального репозитория, выберите эту ветку в elcipse и затем внесите изменения в код. После этого вы сможете выбрать исходную основную ветку, и вы не увидите эти изменения, если вы не слились.
Что меня смущает, так это то, что когда я снова переключаюсь на мастер, изменения, которые я сделал в новой ветке, остаются там ... даже если я не слился.
Вы не сказали этого явно, но я предполагаю, что вы не зафиксировали эти изменения. Git с радостью позволит вам переключаться между ветками с незафиксированными изменениями - до тех пор, пока эти изменения отсутствуют в файлах, которые отличаются между двумя ветвями. Это очень помогает, когда вы делаете коммит и обнаруживаете, что вы выбрали не ту ветку.
Если вы зафиксировали свои изменения, а затем переключили ветки, вы бы увидели, что они исчезают именно так, как вы ожидаете.
(Кстати, слияния - это операции на основе фиксации - вы объединяете два (обычно) коммита и создаете новый коммит с обоими исходными двумя в качестве родителей. Нет смысла думать о слиянии с незафиксированными изменениями. )
Что касается обучения использованию и, что более важно, понимания Git, существует множество замечательных ссылок - например, Git Parable (легкомысленное введение в основные идеи ), ProGit и Git Community Book . EGit - это отличная вещь в принципе, делающая вещи доступными через IDE - но я бы предостерег вас не пропускать хорошее понимание того, как все работает на самом деле под капотом. Это, вероятно, когда-нибудь спасет вас от нажатия на кнопку, а затем от слов «о нет, что я наделал!»