Just adding one more point: if during "git cherry-pick", there are
conflicts and I found that merge is too messy and complicated. I want
to give up and back to the state before doing "git cherry-pick", I
used this command:

git reset --hard HEAD

http://book.git-scm.com/4_undoing_in_git_-_reset,_checkout_and_revert.html

On Oct 18, 12:45 pm, www <xs...@yahoo.com> wrote:
> Thank you. I have accomplished my goal successfully. Following is what
> I did:
>
> Again, I have all my work I did. It is located in the directory
> "mine/" and I use git to version control all my work. I received the
> work files from my partner. He does not use any version control. He
> sent me his tar files. Both he amd me are working on the same files. I
> un-tar my partner's tar files into the directory "partner/", which is
> parralel with "mine/".
>
> cd partner
> git init //create an empty git version control repository
> git add xxx //adding the files into repository
> git commit -a -m "received files from my partner. He has finished his
> part"
>
> //Now, I want to merge my work(my commits inside mine/, one by one) to
> my partner's work
> //still at the same location as above
> git remote add my_work ../mine
> git fetch my_work  //fetch all my commits into the remote branch
> "my_work"
> git branch -a //"-a" shows all branches
> //shows the following:
> * master
>   remotes/my_work/master
> git branch -r //"-r" shows remote branche
> //shows the following:
>   my_work/master
>
> Now, I can use "git cherry-pick" to pluck out my commits one by one:
> cd ../mine  //change to mine/
> git log  //shows all my commits and their corresponding SHA, actually
> I output the log into a text file so that I can refer to later
> cd ../partner
> git cherry-pick my_first_commit_sha
> //if no conflict, my first commit in mine/ directory is merged into my
> partner's work and is committed already!!!
> //if there is conflict, then:
> git status .  //found out which file(s) were affected by the cherry-
> pick merge and which of them are in conflict, then use file editor to
> open the files in conflict and edit them, then check them in
> git commit -a -m "merged from my first commit; solved the conflicts"
> //Done!
>
> Another way is just merging my commit into my partner's files to
> become local changes for me to view, before I commit the merged
> results into repository is git format-patch method, which works for me
> in one scenario, fails in another scenario. I don't know why:
> //at partner directory
> git format-patch -1 my_first_commit_sha //"-1" is "minus one", not
> "minus little"; the command generates a patch file
> xxx-xxx-xaskada-adafja.patch //patch file generated
> git apply xxx-xxx-xaskada-adafja.patch
>
> //Now, my commit in mine/ has become the local changes in partner/.
> Again, if no conflict, then it is ready for commit; if there is
> conflicts, need to solve the conflict first, then commit
>
> I have to say, comparing to subversion, git indeed has some
> advantages(e.g. everything, including the repository, is inside my
> local directory, so no network to the central repository is needed, so
> all the commands are fast). For subversion, commit and update commands
> are talking with the central repository through the network. When the
> project is big, the commands are slow.
>
> However, most--i intend to say all-- git tutotials are half-baked,
> including some well-cited tutorials. It seems nobody has the patience
> to write it down and show other people and just let other people--like
> me-- to struggle and find their way out.
>
> On Oct 14, 8:02 pm, Wes Freeman <freeman....@gmail.com> wrote:
>
> > I might be wrong, so be careful (you should make a copy of both repos
> > before you start, just in case), but I think something like this might
> > work:
>
> > 1. Add your repository as a remote to the new repository.
> > 2. Pull your changes in to the new repository.
> > 3. From the new repository, git cherry-pick each commit.
>
> > Wes
>
> > On Fri, Oct 14, 2011 at 3:44 PM, www <xs...@yahoo.com> wrote:
> > > Dear All:
>
> > > I am new to git and I am using linux.
>
> > > I am working on my project, using git and I have made about 20
> > > commits. All my files are at the directory mine/ Inside mine, there
> > > is .git directory. Now, I received the tar files from my partner. He
> > > just finished his part of work and we are working on the same set of
> > > files. He does not use version control. I put all his files in the
> > > parallel directory his/. I did the following:
>
> > > cd his
> > > git init
> > > git add xxxx  //all the stuff
> > > git commit . -m "received from partner and he has finished his part"
>
> > > Ideally, I want to step by step merge my revision one, my revision
> > > two, my revision three, etc  from mine/ into his/
>
> > > It is very likely that there will be conflicts since we are touching
> > > same files. So I want to do merging step by step. I hope to view each
> > > revision modification before committing.
>
> > > How can I do it? I have googled and studied the whole day and my brain
> > > hurts.
>
> > > Thank you very, very much.
>
> > > --
> > > You received this message because you are subscribed to the Google Groups 
> > > "Git for human beings" group.
> > > To post to this group, send email to git-users@googlegroups.com.
> > > To unsubscribe from this group, send email to 
> > > git-users+unsubscr...@googlegroups.com.
> > > For more options, visit this group 
> > > athttp://groups.google.com/group/git-users?hl=en.

-- 
You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To post to this group, send email to git-users@googlegroups.com.
To unsubscribe from this group, send email to 
git-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/git-users?hl=en.

Reply via email to