I actually wrote a blog post which covers this topic pretty well.  It is a
very trimmed down post to just cover the basics, but it should cover all
the basics you need:
http://www.swillops.com/blog/git-branches-manage-third-party-app-customization

Hopefully you will find this helpful...


On Tue, Feb 12, 2013 at 4:10 PM, Mike Tutkowski <
[email protected]> wrote:

> I've got another Git question (I've mainly used SVN in the past):
>
> Edison recommended I branch off of his storage_refactor branch for my work
> (which I have done).  He also asked me to pull in changes to my branch from
> storage_refactor every now and then so my branch would not get that out of
> date relative to his.
>
> Is this a good way to do this with Git?
>
> $ git checkout mike_tut_storage_refactor
>
> $ git rebase storage_refactor
>
> To my understanding, this will pull into my branch all the necessary
> changes from his, but will not modify his branch?  Is that true?
>
>
> Thanks!
>
>
> On Fri, Feb 8, 2013 at 12:13 PM, Mike Tutkowski <
> [email protected]> wrote:
>
>> Awesome - thanks, everyone!
>>
>>
>> On Fri, Feb 8, 2013 at 10:38 AM, Pranav Saxena 
>> <[email protected]>wrote:
>>
>>> Glad that it worked for you . I think ,  what Chip suggested , I guess
>>> that is usually done if you have committed your changes locally and then
>>>  you want to shift to another branch else you can directly branch off .
>>>
>>> Regards,
>>> Pranav
>>>
>>> From: Will Stevens [mailto:[email protected]]
>>> Sent: Friday, February 08, 2013 10:47 PM
>>> To: Pranav Saxena
>>> Subject: Re: Git Branching Question
>>>
>>> I just did a quick test to verify my knowledge.
>>>
>>> Pranav's advice works.
>>>
>>> $ mkdir testbed
>>> $ cd testbed/
>>> $ ls -al
>>>     drwxr-xr-x   2 swill  staff    68  8 Feb 12:01 .
>>>     drwxr-xr-x+ 78 swill  staff  2652  8 Feb 12:01 ..
>>> $ mkdir project
>>> $ cd project/
>>> $ git init
>>>     Initialized empty Git repository in
>>> /Users/swill/testbed/project/.git/
>>> $ git status
>>>     # On branch master
>>>     #
>>>     # Initial commit
>>>     #
>>>     nothing to commit (create/copy files and use "git add" to track)
>>> $ echo "testing" > testing.txt
>>> $ ls -al
>>>     drwxr-xr-x   4 swill  staff  136  8 Feb 12:02 .
>>>     drwxr-xr-x   3 swill  staff  102  8 Feb 12:01 ..
>>>     drwxr-xr-x  10 swill  staff  340  8 Feb 12:02 .git
>>>     -rw-r--r--   1 swill  staff    8  8 Feb 12:02 testing.txt
>>> $ git status
>>>     # On branch master
>>>     #
>>>     # Initial commit
>>>     #
>>>     # Untracked files:
>>>     #   (use "git add <file>..." to include in what will be committed)
>>>     #
>>>     #     testing.txt
>>>     nothing added to commit but untracked files present (use "git add"
>>> to track)
>>> $ git add .
>>> $ git commit -a -m "added testing"
>>>     [master (root-commit) 4f1d81d] added testing
>>>      1 files changed, 1 insertions(+), 0 deletions(-)
>>>      create mode 100644 testing.txt
>>> $ git status
>>>     # On branch master
>>>     nothing to commit (working directory clean)
>>> $ echo "uncommited" > uncommited.txt
>>> $ git status
>>>     # On branch master
>>>     # Untracked files:
>>>     #   (use "git add <file>..." to include in what will be committed)
>>>     #
>>>     #     uncommited.txt
>>>     nothing added to commit but untracked files present (use "git add"
>>> to track)
>>> $ git checkout -b my_feature
>>>     Switched to a new branch 'my_feature'
>>> $ git status
>>>     # On branch my_feature
>>>     # Untracked files:
>>>     #   (use "git add <file>..." to include in what will be committed)
>>>     #
>>>     #     uncommited.txt
>>>     nothing added to commit but untracked files present (use "git add"
>>> to track)
>>> $ git add .
>>> $ git commit -a -m "the code for my commit"
>>>     [my_feature fa3dfbd] the code for my commit
>>>      1 files changed, 1 insertions(+), 0 deletions(-)
>>>      create mode 100644 uncommited.txt
>>> $ git status
>>>     # On branch my_feature
>>>     nothing to commit (working directory clean)
>>> $ ls -al
>>>     drwxr-xr-x   5 swill  staff  170  8 Feb 12:03 .
>>>     drwxr-xr-x   3 swill  staff  102  8 Feb 12:01 ..
>>>     drwxr-xr-x  13 swill  staff  442  8 Feb 12:05 .git
>>>     -rw-r--r--   1 swill  staff    8  8 Feb 12:02 testing.txt
>>>     -rw-r--r--   1 swill  staff   11  8 Feb 12:03 uncommited.txt
>>> $ git status
>>>     # On branch my_feature
>>>     nothing to commit (working directory clean)
>>> $ git checkout master
>>>     Switched to branch 'master'
>>> $ git status
>>>     # On branch master
>>>     nothing to commit (working directory clean)
>>> $ ls -al
>>>     drwxr-xr-x   4 swill  staff  136  8 Feb 12:06 .
>>>     drwxr-xr-x   3 swill  staff  102  8 Feb 12:01 ..
>>>     drwxr-xr-x  13 swill  staff  442  8 Feb 12:06 .git
>>>     -rw-r--r--   1 swill  staff    8  8 Feb 12:02 testing.txt
>>>
>>>
>>> On Fri, Feb 8, 2013 at 12:03 PM, Pranav Saxena <[email protected]
>>> <mailto:[email protected]>> wrote:
>>> Hey Mike ,
>>>
>>> Assuming you have done your changes on the storage-refactor branch but
>>> you haven't committed or staged them and then you checkout to a new branch
>>> (git checkout -b "mike_temp" ) , then your changes would still be shown in
>>> the new branch . You could do a "git status" to verify your list of changes
>>> before and after you checked out to a new branch.
>>>
>>> Regards,
>>> Pranav
>>> -----Original Message-----
>>> From: Mike Tutkowski [mailto:[email protected]<mailto:
>>> [email protected]>]
>>> Sent: Friday, February 08, 2013 9:51 PM
>>> To: [email protected]<mailto:
>>> [email protected]>
>>> Subject: Git Branching Question
>>>
>>> Hi everyone,
>>>
>>> I'm somewhat new to Git (mainly used SVN).
>>>
>>> I am currently working on the storage_refactor branch.  I've added some
>>> code and changed a little existing code, but not staged or committed it to
>>> my local repo.
>>>
>>> After I added and modified code, I was advised it would be better for me
>>> to branch from storage_refactor and put my code in that branch (pulling
>>> from storage_refactor as I go).
>>>
>>> My question is this:  With un-tracked files and modified files from the
>>> storage_refactor branch (again, nothing staged or committed), if I branch
>>> from storage_refactor, where will my un-tracked files and modified files
>>> end up?  Will they be in my new branch and the storage_refactor branch will
>>> look as if I never did anything in it (that would be ideal)?
>>>
>>> Thanks!
>>>
>>> --
>>> *Mike Tutkowski*
>>> *Senior CloudStack Developer, SolidFire Inc.*
>>> e: [email protected]<mailto:[email protected]>
>>> o: 303.746.7302<tel:303.746.7302>
>>> Advancing the way the world uses the
>>> cloud<http://solidfire.com/solution/overview/?video=play>
>>> *(tm)*
>>>
>>>
>>
>>
>> --
>> *Mike Tutkowski*
>> *Senior CloudStack Developer, SolidFire Inc.*
>> e: [email protected]
>> o: 303.746.7302
>> Advancing the way the world uses the 
>> cloud<http://solidfire.com/solution/overview/?video=play>
>> *™*
>>
>
>
>
> --
> *Mike Tutkowski*
> *Senior CloudStack Developer, SolidFire Inc.*
> e: [email protected]
> o: 303.746.7302
> Advancing the way the world uses the 
> cloud<http://solidfire.com/solution/overview/?video=play>
> *™*
>

Reply via email to