>OK, nice story. But for me, I have no idea how you "pull in his changes and >review". Or "go back and test against unmodified code". And are you stashing >or committing your changes first? What git commands and >flags do you use?
>And the main debate is: if you have a simple change to the README, are you >creating a branch for that? Alex, I will do my best to keep monitoring and answering question from my experience as they come up. First, as far as changing a README, nope. I would likely just pull, change it (maybe quickly re-pull my from the repo to make sure no one else screwed with it while I was working) and push the change back up. I am not a purist on any of these things, my like of git is just because it saves me time. Maybe I can go back through my narration and add commands, but let me answer quickly with the time I have now and I can document as soon as possible. I am doing this from memory so stick with me and I will try to make typos -- So, for now, let's hit your questions. I prefer not to use stash. Stash is a temporary local storage and its sort of an escape hatch in my opinion. I usually only use it when I get into the weeds. For example, I realized I was making changes in the wrong branch. In that case, I would stash the changes, because I don't want to commit them. Switch branches, then apply the stash. That is really the only time I use it. In every other case, I would commit my changes to my local branch. That is always the case for me if the work I just did was useful. Once everything in your local workspace is committed, you are free to switch branches. Let's take a couple of scenarios. Let's say I branched from develop and made SomePieceRefactor. I work in it for a bit, and then you tell me there is something you want me to take a look at. I now have a choice, I can add those changes to the work I have been doing already or not. So, if I want to check your changes with mine, I would immediately branch: git checkout -b RefactorPlusAlex So, now I have a branch called RefactorPlusAlex. Why make a branch now? Because if your stuff doesn't work (or I don't want to keep using it), I want to resume my progress right away from my branch and not have to pick out your files one by one, etc.. Now, to be able to pull your changes directly, I need to know where your Repo is. This is a one time thing, but I need to setup a remote for you... it would look something like this: git remote add alex urlToYourRepo After this command, I can refer to your setup as alex in my commands going forward. I can choose to download all of your code or just the branch I am interested in from your repo: git fetch alex[/branchname] This pulls down the code from your branch. Now I say git merge alex/branchname Which merges your code into my branch. I can now build/test/do whatever. When I am done, I can revert any changes (if I made them) and then just say: git checkout SomePieceRefactor which resets everything to exactly as it was before I brought down your changes. Had I instead wanted to integrate them but NOT with my changes: I would first commit my changes, then: git checkout develop //switch me to develop git checkout -b DevPlusAlex //create a new branch from develop to try your changes And now do the same as above... so, I just had to choose where I wanted to start the branch from, before I then integrated your changes. I know there are more questions, and I will try to be extra attentive anytime I am not on a plane for the next few days. Ask question on this and I should be able to respond again in an hour or so. Mike