Hello Jack,<br>I usually stick to a simpler workflow without using git stash and smaller commits, which git encourages.<br><br>My usual workflow is the following:<br><br>git checkout master<br>git pull -r<br>git checkout -b bugxxx  <------ this creates a new branch<br>
<write code, test><br>git add <file1><br>git commit <file1> <file2><br>git checkout master<br>git pull -r<br>git checkout bugxxx<br>git rebase master<br><solve conflicts, if any><br><write some more code><br>
git commit <file1><br>git checkout master<br>git pull -r<br>git checkout bugxxx<br>git rebase master<br><solve more conflicts, test><br>git checkout master<br>git merge bugxxx<br>git push<br>git branch -d bugxxx <--- this is optional. it removes the branch<br>
<br><br><div class="gmail_quote">On Sun, Nov 13, 2011 at 5:29 PM, Jack <span dir="ltr"><<a href="mailto:ostroffjh@users.sourceforge.net">ostroffjh@users.sourceforge.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="HOEnZb"><div class="h5">On 2011.11.11 19:27, Alvaro Soliverez wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello all,<br>
if you are not an active KMM developer, you can stop reading here.<br>
<br>
------------------------------<u></u>-----------------------------<br>
With git there are several possible workflows, all of them correct, and suitable to different situations.<br>
I've had working experience with git in a context similar to ours (eg. a project with 5-6 developers, several branches, the possibility that we might modify the same files without knowing, etc.)<br>
In that project, what each of us would do was:<br>
- Pull --rebase the latest from the server for whatever branch we had to work in (master or stable)<br>
- Branch off to a private branch<br>
- Write the code, test, etc.<br>
- Commit<br>
- Switch to the original branch<br>
- Pull --rebase the latest again<br>
- Switch to work branch<br>
- Rebase from original branch<br>
- Fix conflicts if any, test again, commit if needed<br>
- Switch to original branch<br>
- Merge the work branch<br>
- Push to server<br>
<br>
You can maintain several different branches. Keep in mind that branches are extremely cheap. It's totally different from SVN.<br>
<br>
What rebasing means, is that it will get the commits from another branch, and it will try apply your commits on top of that. If there is a conflict, you have the opportunity to fix it while rebasing.<br>
<br>
To summarize, this workflow means we always work on the code in private branches, then rebase and merge to master or stable branches.<br>
<br>
In cases where a commit has to be applied to several branches, it can be merged to one branch, and cherry-picked from the others.<br>
<br>
It is important to agree on a workflow that suits us, and also doesn't clutter the log, something that can happen very quickly on git.<br>
<br>
Input is welcome, but please keep in mind that this only affects people that will be actually pushing to the repository.<br>
</blockquote>
<br></div></div>
Is there a more detailed example of this (or a similar) workflow, including use of 'git add' and 'git stash?'  If I am editing a large section of the manual, I may work on it for over a week before I am ready to commit the changes, and I still want to be able to pull down any other changes from the repository, but I believe 'git pull --rebase' refuses to proceed if there are any uncommitted local changes.<br>

<br>
I've started reading the techbase entries on git, and I know I'll eventually be able to figure it out, but if there is already an appropriate tutorial or cookbook I just have not yet found, it would save me (and others?) a lot of time.<br>

<br>
Thanks.<span class="HOEnZb"><font color="#888888"><br>
<br>
Jack</font></span><div class="HOEnZb"><div class="h5"><br>
______________________________<u></u>_________________<br>
KMyMoney-devel mailing list<br>
<a href="mailto:KMyMoney-devel@kde.org" target="_blank">KMyMoney-devel@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/kmymoney-devel" target="_blank">https://mail.kde.org/mailman/<u></u>listinfo/kmymoney-devel</a><br>
</div></div></blockquote></div><br>