title: Modifying a remote repository A, pushing the changes to another remote B, and working with a merged version AB locally?
body: <p>I have an example remote repository:</p>
  <pre><code>repoA/
  ├─ node_modules/
  ├─ public/
  │  ├─ favicon.ico
  │  ├─ index.html
  │  ├─ robots.txt
  ├─ src/
  │  ├─ index.css
  │  ├─ index.js
  ├─ .gitignore
  ├─ package.json
  ├─ README.md
  </code></pre>
  <p>I want to clone that repository and make some changes:</p>
  <pre><code>repoA/ (local)
  ├─ .git/
  ├─ node_modules/
  │  ├─ somenewfile1.txt (+++)
  ├─ public/
  │  ├─ favicon.ico
  │  ├─ index.html
  │  ├─ robots.txt
  ├─ src/
  │  ├─ index.css
  │  ├─ somenewfile2.txt (+++)
  │  ├─ index.js (@@ +1 -1 @@)
  ├─ .gitignore (@@ +1 -1 @@)
  ├─ package.json
  ├─ README.md
  </code></pre>
  <p>However, whenever I want to push commits I do not want to push them to this remote repository. Instead, I want to push them to another remote repository, that only has my changes:</p>
  <pre><code>repoB/
  ├─ node_modules/
  │  ├─ somenewfile1.txt
  ├─ src/
  │  ├─ index.js
  │  ├─ somenewfile2.txt
  ├─ .gitignore
  </code></pre>
  <p>Then whenever somebody runs <code>git clone repoB</code> (or <code>git pull</code>) they should have the original repository repoA merged with the files in repoB (similar to the second tree diagram, ignoring the change annotations).</p>
  <p>The motivation is to have my changes completely isolated from the original repository yet easily distinguished. I still would like to be able to track the original's changes.</p>
  <p>I know about forking, but that makes a copy of the whole original repository. <code>git submodule</code> might be a possibility but I know little about them. I might have been able to google this question if I knew the right vocabulary.</p>
  <p>Can I do this? How so? Is it a good practice?</p>