Hello everyone! Recently I wrote a short article Git vs SVN A.K.A. Everyone likes control. Now, I wanted to give you an “real life” example of putting Magento project into Git repository.
So, let’s begin. First of all, I assume that you wish to start with fresh project and that you’ll be doing only back-end programming. This is important because I’ll set up repository only for /app/code/local/ folder. It will keep the repository lightweight and enough for this practical example. At the end, I’ll explain .gitignore file so that you can make modifications to folders you wish to include.
Preparing Git locally
There are two steps you must go through before you start working with Git:
- To get started, you need to install Git on your machine – you can find instructions by going on this page.
- Next thing you need to do is to find yourself a Git repository that you’ll use for your projects. For this example, I used free private repository located at http://gitfarm.appspot.com/.
Registering (and auto-configuring) of Git repository is extremely simple with gitfarm.appspot.com
Adding Magento files to Git repository
Now, when you have your repository ready, all we need to do is add our files to it. In my example, I’ll add only 1 Magento directory (/app/code/local/) I accomplished that with following commands:
- Navigate to your “workspace” directory
- Write to console: git clone http://firstname.lastname@example.org/git/repository_name.git – we cloned our empty repository to local machine
- Navigate to directory named “repository_name” and if you see .git directory inside it, copy your Magento project inside it
- Write to console: git add app/code/local/ – this line added our first directory with its files to repository
- Write to console: git commit -a -m “Initial repository setup” – with this line executed, we made our first commit with message “Initial repository setup”
- Write to console: git push http://email@example.com/git/repository_name.git master – and finally we pushed our initial setup folder to repository. When this command is executed, you’ll have your files online in this example.
Now, that wasn’t so hard you should agree. At the moment if you followed these few steps, you have your first Magento Git repository ready for work.
At the moment, anyone with repository location (and password in case of gifarm) can repeat steps 1. , 2. ,5. and 6. and do his/hers share on the project.
- If you haven’t used gitfarm.appspot.com as your repository, steps 2 and 6 might differ (depending of repository setup)
- if you’ve used any private repository, you will have to authenticate via password or ssh key (depending on setup) – when promited in any of the steps
- You can add more than one directory to your Git repository by repeating step 4 with different location (all files and folders under that directory will be added)
.gitignore and Magento
.gitignore is Git file that contains a list of files/folders that you wish to keep untracked on repository itself. So, on Magento, as in any other project those are files and folders that depend on your local setup like downloader/, errors/, config.xml,… and so on.
Generally I don’t think that you need whole Magento project on repository, but rather files you edited/added. That’s why I suggest that you put your git project files inside a local copy.
That’s all from me in this one. I hope you learned something new today!