Last active
November 25, 2024 11:14
-
-
Save jorotenev/76787a53107e971a7c75bcfaee64cf15 to your computer and use it in GitHub Desktop.
Revisions
-
Georgi Tenev revised this gist
Apr 1, 2017 . 1 changed file with 8 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -36,4 +36,11 @@ Example - change files in both the `thesis` and the `memory-engine` folders: `git push origin master` * Push to the `memory-engine` repo `georgi@georgi-laptop:~/Projects/thesis(master)$ git subtree push --prefix memory-engine memory-engine-origin master` * If we open the GitHub of `thesis` - we will see the commit, with both files changed. If we open the GitHub of `memory-engine`, only the memory-engine/README.md will be in the commit. Voila ## Change the branch of `memory-engine` http://stackoverflow.com/questions/18536279/git-subtree-possible-to-change-subtree-branch-path-in-a-forked-repository * push the branch to the `memory-engine` repo * In `thesis` `rm -rf memory-engine` * Commit * `georgi@georgi-laptop:~/Projects/thesis(master)$ git subtree add --prefix=memory-engine/ memory-engine-origin <memory-engine-branch-we-want>` -
Georgi Tenev revised this gist
Mar 31, 2017 . 1 changed file with 4 additions and 3 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,14 +1,15 @@ ``` ./thesis ├── docker-compose.yaml ├── micrsoserviceX ├── micrsoserviceY ├── memory-engine ``` # Subtree workflows Adapted from [here](https://medium.com/@v/git-subtrees-a-tutorial-6ff568381844). Below is an executive summary for the use case of a university collaborative thesis project. We have the `thesis` folder and some other, subproject folder (the `memory-engine` in this example). We want the `thesis` to be a "main" repository, such that on a new machine, just pulling it is enough to get us started. We also want to make it easy to make changes either to `memory-engine/` code, or to code in the `thesis/` or to both, without having to bump versions/commits every time we push to `memory-engiine`. We could have used `git submodules` but it's so much pain (really). ## Set up a new subtree -
Georgi Tenev revised this gist
Mar 31, 2017 . 1 changed file with 7 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,7 +1,13 @@ ./thesis ├── docker-compose.yaml ├── micrsoserviceX ├── micrsoserviceY ├── memory-engine # Subtree workflows Adapted from [here](https://medium.com/@v/git-subtrees-a-tutorial-6ff568381844). Below is an executive summary for the use case of a university collaborative thesis project. We have the `thesis` repo and some other, subproject repo (the `memory-engine` repo in this example). We want the `thesis` to be the "main" repository, such that on a new machine, just pulling it is enough to get us started. We also want to make it easy to make changes either to `memory-engine/` code, or to code in the `thesis/` or to both, without having to bump versions/commits every time we push to `memory-engiine`. We could have used `git submodules` but it's so much pain (really). -
Georgi Tenev revised this gist
Mar 30, 2017 . 1 changed file with 10 additions and 10 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -9,24 +9,24 @@ We could have used `git submodules` but it's so much pain (really). * In `thesis/`: `git remote add memory-engine-origin git@github.com:warreee/memory-engine.git` * add the subtree (this will clone the master of the `memory-engine` repo and configre the thesis) repo. `git subtree add --prefix=memory-engine/ memory-engine-origin master` ## Changing `memory-engine` from within the `thesis` We have opened the thesis repo in, say, PyCharm, we make a change in the 'memory-engine' folder and just want to publish our changes without having to push first to the `memory-engine` repo and then pulling from `thesis`. * e.g. if we are in `thesis/`, we can make changes to the memory-engine `touch ./memory-engine/boo` * and then push the changes to the `thesis` repo `git commit -am "added boo"` `git push origin master` (origin here is the thesis origin) In GitHub of `thesis`, the commit would appear. Nothing special, but still useful because we didn't have to bump versions anywhere. ## Changing files from both repos Example - change files in both the `thesis` and the `memory-engine` folders: * make the changes `georgi@georgi-laptop:~/Projects/thesis/memory-engine(master)$ echo "boo :)" >> README.md` `georgi@georgi-laptop:~/Projects/thesis(master)$ echo "testing" >> README.md` * make a commit and push it to the `thesis` repo `git commit -am "made a commit to both repos"` `git push origin master` * Push to the `memory-engine` repo `georgi@georgi-laptop:~/Projects/thesis(master)$ git subtree push --prefix memory-engine memory-engine-origin master` * If we open the GitHub of `thesis` - we will see the commit, with both files changed. If we open the GitHub of `memory-engine`, only the memory-engine/README.md will be in the commit. Voila -
Georgi Tenev revised this gist
Mar 30, 2017 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -8,10 +8,10 @@ We could have used `git submodules` but it's so much pain (really). ## Set up a new subtree * In `thesis/`: `git remote add memory-engine-origin git@github.com:warreee/memory-engine.git` * add the subtree (this will clone the master of the `memory-engine` repo and configre the thesis) repo. `git subtree add --prefix=memory-engine/ memory-engine-origin master` ## Changing `memory-engine` from within the `thesis` We have opened the thesis repo in, say, PyCharm, we make a change in the 'memory-engine' folder and just want to publish our changes without having to push first to the `memory-engine` repo and then pulling from `thesis`. * e.g. if we are in `thesis/`, we can make changes to the memory-engine `touch ./memory-engine/boo` * and then push the changes to the `thesis` repo -
Georgi Tenev revised this gist
Mar 30, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -6,7 +6,7 @@ We want the `thesis` to be the "main" repository, such that on a new machine, ju We also want to make it easy to make changes either to `memory-engine/` code, or to code in the `thesis/` or to both, without having to bump versions/commits every time we push to `memory-engiine`. We could have used `git submodules` but it's so much pain (really). ## Set up a new subtree * In `thesis/`: `git remote add memory-engine-origin git@github.com:warreee/memory-engine.git` * add the subtree (this will clone the master of the `memory-engine` repo and configre the thesis) repo. `git subtree add --prefix=memory-engine/ memory-engine-origin master` -
Georgi Tenev revised this gist
Mar 30, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -6,7 +6,7 @@ We want the `thesis` to be the "main" repository, such that on a new machine, ju We also want to make it easy to make changes either to `memory-engine/` code, or to code in the `thesis/` or to both, without having to bump versions/commits every time we push to `memory-engiine`. We could have used `git submodules` but it's so much pain (really). ## Set up a new subtree * In `thesis/` `git remote add memory-engine-origin git@github.com:warreee/memory-engine.git` * add the subtree (this will clone the master of the `memory-engine` repo and configre the thesis) repo. `git subtree add --prefix=memory-engine/ memory-engine-origin master` -
Georgi Tenev revised this gist
Mar 30, 2017 . No changes.There are no files selected for viewing
-
Georgi Tenev revised this gist
Mar 30, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -3,7 +3,7 @@ Adapted from [here](https://medium.com/@v/git-subtrees-a-tutorial-6ff568381844). Say we have the `thesis` repo and some other, subproject repo (the `memory-engine` repo in this example). We want the `thesis` to be the "main" repository, such that on a new machine, just pulling it is enough to get us started. We also want to make it easy to make changes either to `memory-engine/` code, or to code in the `thesis/` or to both, without having to bump versions/commits every time we push to `memory-engiine`. We could have used `git submodules` but it's so much pain (really). ## Set up a new subtree * In `thesis` -
Georgi Tenev created this gist
Mar 30, 2017 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,32 @@ # Subtree workflows Adapted from [here](https://medium.com/@v/git-subtrees-a-tutorial-6ff568381844). Below is an executive summary for the use case of a university collaborative thesis project. Say we have the `thesis` repo and some other, subproject repo (the `memory-engine` repo in this example). We want the `thesis` to be the "main" repository, such that on a new machine, just pulling it is enough to get us started. We also want to make it easy to make changes to code either to a `memory-engine/` code, or to code in the `thesis/` or to both, without having to bump versions/commits every time we push to `memory-engiine`. We could have used `git submodules` but it's so much pain (really). ## Set up a new subtree * In `thesis` `git remote add memory-engine-origin git@github.com:warreee/memory-engine.git` * add the subtree (this will clone the master of the `memory-engine` repo and configre the thesis) repo. `git subtree add --prefix=memory-engine/ memory-engine-origin master` ## Changing `memory-engine` from within the `thesis` We have opened the thesis repo in pycharm, we make a change in the 'memory-engine' folder and want to just want to publish our changes without having to push first to the memory-engine repo and then pulling from thesis. * e.g. if we are in `thesis/`, we can make changes to the memory-engine `touch ./memory-engine/boo` * and then push the changes to the `thesis` repo `git commit -am "added boo"` `git push origin master` (origin here is the thesis origin) In GitHub of `thesis`, the commit would appear. Nothing special, but still useful because we didn't have to bump versions anywhere. ## Changing files from both repos Example - change files in both the `thesis` and the `memory-engine` folders: * make the changes `georgi@georgi-laptop:~/Projects/thesis/memory-engine(master)$ echo "boo :)" >> README.md` `georgi@georgi-laptop:~/Projects/thesis(master)$ echo "testing" >> README.md` * make a commit and push it to the `thesis` repo `git commit -am "made a commit to both repos"` `git push origin master` * Push to the `memory-engine` repo `georgi@georgi-laptop:~/Projects/thesis(master)$ git subtree push --prefix memory-engine memory-engine-origin master` * If we open the GitHub of `thesis` - we will see the commit, with both files changed. If we open the GitHub of `memory-engine`, only the memory-engine/README.md will be in the commit. Voila