On 29/04 08:56, Elijah Newren wrote: > > +[[fetching-and-pulling]] > > +How do I know if I want to do a fetch or a pull?:: > > + A fetch brings in the latest changes made upstream (i.e., the > > + remote repository we are working on). This allows us to inspect > > + the changes made upstream and integrate all those changes (if > > + and only if we want to) or only cherry pick certain changes. > > + Fetching does not have any immediate effects on the local > > + repository. > > Maybe change that last sentence to "Fetching does not modify the > current branch"? The local repository certainly gets bigger, and the > remote tracking branches are updated as well as their reflogs, and it > might trigger a gc, all of which sound like immediate effects to me. I meant changes in terms of the user's code. Yep you are right, I need to be precise here. > > + > > + A pull is a wrapper for a fetch and merge. This means that doing > > ...for a fetch and merge or a fetch and rebase. This means... > > > + a `git pull` will not only fetch the changes made upstream but > > + integrate them as well with our local repository. The merge may > > ...with our current branch. The merge or rebase... > > > + go smoothly or have merge conflicts depending on the case. A pull > > + does not allow you to review any changes made upstream but rather > > + merge those changes on their own. > > I don't understand this last sentence. You can definitely review > changes made upstream after a pull; e.g. git log @{u}@{1}..@{u} I meant that the pull will apply the changes right away and one does not get the chance to review what is being applied before it has been applied (something a fetch does). I need to be more clear here, understood. > > ++ > > +This is the reason why it is sometimes advised to fetch the changes > > +first and then merge them accordingly because not every change might > > +be of utility to the user. > > I don't understand the purpose of this paragraph. I intended to emphasise the difference between a fetch and a pull; the fact that fetch just brings in the changes from the remote and doesnot apply them to our code/files right away, while a pull does so. Also, a nit but, we are supposed to use 1 SP or 2 SP after a full stop(.)? In India we use 1 SP, is it different in other countries?