title: Is it possible in git to have a branch-like sequence of commits that gets applied on top of another branch?
body: <p>I have been using git for a long time and think am quite familiar with it, but I recently encountered an use case that is bothering me:</p>
  <p>There is a <em>main</em> software development team that develops the <code>main</code> branch. This is a regular git branch and they develop using usual git practices.</p>
  <p>Then there is a <em>customer_A</em> support team that develops customizations for customer A. This customizations involve modifying the code in <code>main</code>. What the  <em>customer_A</em> team currently does is they develop their customizations in branch <code>customer_A</code> that they periodically <em>rebase</em> to <code>main</code>. The problem with this approach is that every time that they <em>rebase</em> they need to <em>force-push</em>, with the usual <em>force-push</em> drawbacks.</p>
  <p>What I am wondering is if there is a way for team <em>customer_A</em> to develop in some &quot;branch-like&quot; fashion so their &quot;branch-like&quot; sequence of commits gets applied on top of <code>main</code> without needing to <em>force-push</em> their &quot;branch-like&quot; sequence of commits every time they want to <em>rebase</em> to the latest <code>main</code> branch.</p>
  <p>Before you ask, the customizations for each customer involve modifying different pieces of code for different customers, and they are unpredictable until we talk to the customer. If they were always the same, this would be a typical use case: We would simply externalize the configurations into some configuration files developed in a different repo with each customer team developing their own configuration independent of <code>main</code> or other customer teams.</p>