AWS provides a handy Git based repository to their customers called CodeCommit. Accessing the repository is easy enough, upload your SSH Key to the AWS Console, and then add CodeCommit to your SSH configuration:
# ~/.ssh/config
Host git-codecommit.*.amazonaws.com
User USER1EXAMPLEARN1
IdentityFile ~/.ssh/USER1EXAMPLEARN1_rsaThis is wonderful until you need to access more than one AWS Account’s CodeCommit repo. How do you identify between two different AWS Account repos that use the same URL? You update your SSH configuration like this:
# ~/.ssh/config
Host project1
Hostname git-codecommit.*.amazonaws.com
User USER1EXAMPLEARN2
IdentityFile ~/.ssh/USER1EXAMPLEARN2_rsa
Host project2
Hostname git-codecommit.*.amazonaws.com
User USER2EXAMPLEARN2
IdentityFile ~/.ssh/USER1EXAMPLEARN1_rsafinally, you need to update your Git configuration in each project accordingly:
# ${PROJECT1}/.git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = ssh://project1/v1/repos/my-repo-name
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/head/masterand
# ${PROJECT2}/.git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = ssh://project2/v1/repos/my-repo-name
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/head/masterNOTE: The url for the project just needs to match the Host line in your SSH config. So for clarity try something like
# ~/.ssh/config
Host my-dev-siteand
# ${PROJECT1}/.git.config
...
url = ssh://my-dev-site/v1/repos/my-repo-name
...