How to get several Git repo inside the same VS Code workspace

edit a .gitmodules file inside the main repo

for example for a GIT repo (nexcloud-server fork) https://github.com/compagnon/nextcloud-server.git cloned on a folder , it can be composed of sub folder , that are GIT repo. For example, 3rdparty is the folder containing optional components and custom_apps is the folder where there are customized apps and these paths are also GIT repo.

Add or edit a .gitmodules to get the 3 GIT modules (and remote) available in VS Code / Source Control(Ctrl+Shift+G) as 3 distinct source control providers

For example:

	[submodule "3rdparty"]
	path = 3rdparty
	url = https://github.com/nextcloud/3rdparty.git

	[submodule "nextcloud-custom_apps"]
	path = custom_apps
	url = https://github.com/compagnon/nextcloud-custom_apps.git

get the code:

 git submodule update --init

How to crewind 1 commit

git checkout <feature_branch>
git reset HEAD~1
git reset --hard HEAD~1
git push --force-with-lease origin <feature_branch>
git commit amend --author "Author Name <email@address.com>" --signoff

How to cherry pick commits / squash commits on a branch before the rebase

Objective is to squash lot of commits into just one

Rewind before the pile of commits

git checkout <feature_branch>
git reset --hard <sha1-commit-id>
git push origin HEAD --force

Choose some commit / cherry pick

git cherry-pick C

Rebase and merge

 git rebase master