What Is a Git Clone?
To work with Git we need to have a copy of the repository on our device. In an event of failure and the lack of backups, we can restore the entire repository on the basis of such a copy. So what is a clone? This is a complete copy of the repository with an entire history of changes. But a clone is also the name of a specific function in Git that allows us to do this.
How To Git Clone a Branch?
One of the parameters for the clone function is branch. By default, the clone takes all branches and performs a checkout only on the main branch. However, we can parameterise it to perform a checkout for a particular branch that we specified but it won’t change fetching all branches anyway.
Now we know what git clone and branch is. It allows us to have more control over what we do, but it also has its consequences. We mentioned that a local copy of the repository in extreme cases allows us to restore the project. So each local clone works a little bit like a backup of the base repository. The problem appears when this copy contains only a single branch then of course we do not have the entire repository. And with the company scale grows the risk. Thus, having a reliable repository and metadata backup in place is important and it should never rely on local reproductions because the parameters of the clone command allow you to filter many items and we can never be sure of the differences between ours and external repositories.
Git Clone With SSH
SSH is a communication protocol that enables a remote terminal connection, for example with a server or another computer. Importantly, such connections are encrypted. To establish it, we need a pair of keys: private (saved on our hard drive) and public, shared with the service. We can quite easily establish such a connection in Bitbucket, GitHub, and GitLab. Why should we do this? It allows us to limit the risk of data interception by unauthorised persons as SSH keys are unlikely to be changed often, and certainly not as often as passwords.
Git Clone With HTTPS
This is the default method of cloning on most popular platforms such as GitHub, Bitbucket, or GitLab. We do not need any dedicated configuration we only need an account with a login and password. Of course, when it comes to security, we start to notice some problems but the convenience and ease of use are its great advantages. The risk of losing the login and password is high so it is worth taking steps to increase security. Using two-factor authentication and having a third-party Bitbucket, GitLab or GitHub backup like in place in case a hacker takes over our passwords and removes or encrypts all our code in order to receive a ransom.
Conclusion
There is a huge difference between ‘copy’ and ‘backup’. Copy is fine for daily work, but it’s not enough for the real protection of our source code. To create a complete backup we need to have control over encryption, versioning, long-term data retention, flexible restore options, and so on to be prepared for unexpected events of failure.