Consider repository A a github repository that is managed via Gerrit. I cloned repository A and I created a new branch starting from the master branch of repository A. I pushed this new branch on a new gitlab repository B. I am admin on repository B and I shared it with other developers. Developers cannot push on this branch, but I can merge theirs pull requests. I merged some pull requests on the master branch of repository B. So, repository B has the initial commits of repository A and new commits of the pull request: B commits on top of A commits (b a).
Then, I want to update the repository B with new commits of repository A. Call these commits a+.
I see two options:
- If I merge A on B, the result is: a+ b a.
- If I rebase B on A+, the results is: b a+ a.
Option 1: the developments commits are mixed with external ones. Difficult to debug and to highlight differences.
Option 2: I have to push force the changes on the the remote B. The consequences, if I am not mistaken, may be: 1. if developers pull B and they have commits on local master of B, they will lose their local changes; 2. developers may face big troubles during rebase their local branches after the forced update of branch B.
How should I proceed to avoid any problems?