On Thursday, May 9, 2013 1:14:40 PM UTC+2, Bogdan Valentin Neacsa wrote:

> Hello,
>
> I've read some nice things about git rebasing workflow here: 
> http://mettadore.com/analysis/a-simple-git-rebase-workflow-explained/
>
> I'm suppose to use this in a project with the following structure:
>
>                        develop
>               /                           \
>        dev_frontend            dev_backend
>          /                                     \ 
>     dev_devnames                  dev_devnames
>
> Basically we all work in our own dev_devname branch which will be rebased 
> either against backend or frontend depending on team we are in. No one else 
> but dev will push to his own branch, and as soon as a feature is done, a 
> pull request is made to parent branch, then you move on on your branch with 
> next feature and so on.
>
> We should rebase often from parent branch. Now I've understood how rebase 
> works from that link I posted as long as I have a local branch with 
> commits, which is at the end merged into parent and dropped. I can't seem 
> to understand how this would work with the above case.
>
> Say I rebase from backend, and now push to origin dev_devname . The commit 
> history is now on repo. Now when I start new features/continue work when I 
> rebase from backend my commit history will change again. Now when I try to 
> push to dev_devname I cannot and need to pull from there. But pull now 
> gives me conflicts that I need to fix. Is this normal or am I 
> missunderstanding the workflow here? 
>

I think the workflow here seems overly complicated, as I don't see the 
advantage of having these intermediate backend- and frontend branches.

Now, back to your concrete question. It's a bit hard to say exactly where 
it goes wrong since you don't include any list of commands or output from 
Git. 

But generally: You say you have pushed (published) the work on your 
personal branch "dev_devname", I assume to some shared repository. Then you 
rebase the local "dev_devname" branch? Well then of course you can't push 
to "dev_devname" again. You have rewritten history, and hence diverged from 
the history you already pushed. This is why rebasing, or rewriting history 
in a published branch is a bad thing.

You need to decide in this case if you want to overwrite the already 
published history with your local history. But before you do this you 
should read some more about how rebase and merge really works. I can't 
really say what is the best resource for you to read, but here's one to 
start off with:

http://blog.sourcetreeapp.com/2012/08/21/merge-or-rebase/


 

-- 
You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to