Я хотів би дати іншу точку зору на те, що насправді означає "git pull --rebase", оскільки він, здається, іноді губиться.
Якщо ви коли-небудь використовували Subversion (або CVS), ви можете звикати до поведінки "svn update". Якщо у вас є зміни, які виконуються, а комісія не вдається, оскільки зміни були внесені вище, ви "svn update". Субверсія триває шляхом злиття змін у верхній частині потоку із вашими, що може призвести до конфліктів.
Щойно зробив Subversion, по суті був "pull --rebase". Акт переформулювання ваших локальних змін у відношенні до новішої версії - це "перезавантажувальна" його частина. Якщо ви зробили "svn diff" до невдалої спроби фіксації та порівняли отриманий розріз з результатом "svn diff" після цього, різниця між двома різними - це те, що зробила операція перезавантаження.
Основна відмінність Git від Subversion в цьому випадку полягає в тому, що в Subversion "ваші" зміни існують лише як незавершені зміни у вашій робочій копії, тоді як у Git ви фактично вчиняєте місцеві дії. Іншими словами, в Git ви розпрощалися з історією; ваша історія та історія вище за течією розійшлися, але у вас є спільний предок.
На мою думку, у звичайному випадку, коли ваша локальна філія просто відображає верхню галузь і постійно розвивається на ній, правильне робити - це завжди "--rebase", тому що це ви семантично насправді робите . Ви та інші викрадаєте передбачувану лінійну історію гілки. Той факт, що хтось інший трапився трохи натиснути перед вашою спробою поштовху, не має значення, і видається контрпродуктивним для кожної такої аварії часу, що призводить до злиття в історії.
Якщо ви насправді відчуваєте потребу в чомусь бути галуззю з будь-якої причини, на мою думку, це вже інше питання. Але якщо у вас немає конкретного і активного бажання представляти свої зміни у вигляді злиття, поведінка за замовчуванням, на мою думку, повинна бути "git pull --rebase".
Зверніть увагу на інших людей, яким потрібно спостерігати та розуміти історію вашого проекту. Ви хочете, щоб історія була всіяна сотнями злиттями всюди, або ви хочете лише декілька виділень, що представляють собою реальні злиття навмисних розбіжних зусиль з розвитку?