Простой способ получить файл, выглядящий так, как он есть на главном сервере без учета вашей текущей истории , - это получить последнюю версию файла из мастера и разместить его как есть в вашей ветке:
git checkout A
git checkout master -- file-to-get-from-master
(Обязательно используйте origin/master
или аналогичный вместо master
, если применимо.) На этом этапе этот файл будет отображаться как поэтапное изменение, и вы можете зафиксировать его, как хотите. .
После фиксации, если вы sh отмените изменения этого файла в ветке A, чтобы казалось, что вы его вообще не меняли, вы можете использовать интерактивную перебазировку (git rebase -i), чтобы перетасовать ваши коммиты и сжать sh их, чтобы изменения выпали из вашей ветки.
Обратите внимание, что есть другие способы сделать то, что вы просите, и некоторые из них проще, чем изложены здесь. Но не зная, как в настоящее время выглядит ваша ветка A, этот подход должен работать как уловка.