Как правильно сделать слияние чужих и своих изменений?
Please, commit your changes or stash them before you can merge.
Что в этой фразе не понятного?
Вариант 1.  - Делаете коммит, а котом git pull и оно вам предложит смержить.
Вариант 2.  - Делаете git stash (прячет все незакомиченые локальные изменения); затем git pull; затем git stash pop, а дальше мержите.
Вообще есть третий вариант (на будущее) - создаете локально еще одну ветку, в ней работаете, а потом делаете git pull в основной ветке (точнее в той, от которой вы отпочковались) и мержите с ней свою ветку. (опять же, можете сделать stash, затем "отпочковаться", затем слить изменения с репозитория и потом stash pop  в свою ветку, а затем мержитесь, когда надо, с той веткой, откуда отпочковались).
хочу закоммитить изменения в репозиторий, перед этим делаю git pull
Вот не надо ничего делать, пока не закоммитил. Git просто таки предназначен, чтобы коммитить часто. Закоммитил - считай, сохранил навсегда, и уже не потеряешь