Migrating a Git repository to AWS CodeCommit
As a developer, it's highly possible that we have our code in a GitHub account. So, we will see the migration of a GitHub repository to AWS CodeCommit. Customers often need to replicate commits from one repository to another to support disaster recovery or cross-region CI/CD pipelines. AWS CodeCommit has lots of flexibility when it comes to AWS developer services, such as CodeBuild, CodeDeploy, and CodeStar. Most companies nowadays will think to migrate from those repositories to AWS CodeCommit:

How to do it...
The following are the steps for migrating a project or repository hosted on another Git repository to AWS CodeCommit:
- Firstly, we have to create a CodeCommit repository named
HelloWorld
(refer to the previous CodeCommit repository either using HTTPS or SSH).
- After creating a CodeCommit repository, clone it to the local machine. Since we are cloning the repository using an HTTPS connection, then we need to give the HTTPS credentials of username and password (you can refer to the previous recipe):
root@awsstar:~# git clone https://git-codecommit.us-east- 1.amazonaws.com/v1/repos/HelloWorld Cloning into 'HelloWorld'... Username for 'https://git-codecommit.us-east-1.amazonaws.com': awsccuser-at-1xxxxxxxx39 Password for 'https://[email protected] east-1.amazonaws.com': warning: You appear to have cloned an empty repository. Checking connectivity... done.
3. Now, clone a GitHub repository using --mirror
into another new folder. Here we have a GitHub repository whose name isDocker-Compose-CI-CD
, which will be cloned into a pre-existing empty folder precommit
:
>

root@awsstar:~# mkdir precommit root@awsstar:~# git clone --mirror https://github.com/awsstar/Docker-Compose-CI-CD.git precommit Cloning into bare repository 'precommit'... remote: Counting objects: 36, done. remote: Total 36 (delta 0), reused 0 (delta 0), pack-reused 36 Unpacking objects: 100% (36/36), done. Checking connectivity... done.
- Go to the directory where you made the clone:
root@awsstar:~# cd precommit/
- Run the
git push
command, specifying the URL and name of the destination AWS CodeCommit repository and the--all
option:
root@awsstar:~/precommit# git push https://git-codecommit.us-east- 1.amazonaws.com/v1/repos/HelloWorld --all Username for 'https://git-codecommit.us-east-1.amazonaws.com': awsccuser-at-160384169139 Password for 'https://awsccuser-at-160384169139@git- codecommit.us- east-1.amazonaws.com': Counting objects: 36, done. Delta compression using up to 4 threads. Compressing objects: 100% (33/33), done. Writing objects: 100% (36/36), 3.73 KiB | 0 bytes/s, done. Total 36 (delta 17), reused 0 (delta 0) To https://git-codecommit.us-east- 1.amazonaws.com/v1/repos/HelloWorld * [new branch] master -> master
- Now, let's view the migrated files in AWS CodeCommit:

Here, we can see how easily we have migrated the project from GitHub to AWS CodeCommit.