So i have been messing with Symphony for awhile now so now i want to learn Git.

I am messing around with Github and i can pull things from Gitup but cant push things. But my real question is more focused on my Hosting space at Media Temple.

I wanted to know how to get Git on MT. (Which i think they have it on there) But How can i make a folder on my computer the local folder and then push it to my websites folder?

If you are running the (dv) server, here’s the tutorial. If you are on a Grid Server, check this out.

yea, i followed this page..And i see it working. When i type “ls” in my termial i see everything but i thought i would be able to add folders and files to my sever HTML folder. but i just dont know how to connect the two. Maybe i am getting the wrong idea

Try watching this video

I am having trouble making a dir and then making it commit to the git? any ideas?

I am having trouble making a dir and then making it commit to the git? any ideas?

Git only tracks files so you need to have at least one file in the directory you want to track.

Got it! thanks for the help. I am learning this quick. Git is amazing. I was up most of the night doing it. I got it all but i jsut dont understand one thing. I use coda and when i am on a sever and connect via ssh. I can add dir and files and git repos. But nothing shows up on the left folder structure menu thing. I know some of you use coda so you may know what i am talking about. But when i type “ls” in the ssh it shows the files and folders. So i am not sure how this can up load anywhere on my sever lol.


I got it all but i jsut dont understand one thing. I use coda and when i am on a sever and connect via ssh. I can add dir and files and git repos. But nothing shows up on the left folder structure menu thing.

Yep, Coda is a nice editor, but I find that annoying too. Actually, in Coda, all you need to do is right-click (or ctrl-click) on the folder and click Reload. I wish it reloaded automatically.

ahhh that makes so much sense. That is kinda lame. Anyone my next big issue is has anyone use Git with Media Temple? Bc if i connect via ssh it logs me into my user and not where my domain is. So i cant have both going at the same time…

Any ideas?


I use Coda to manage my local repository in one terminal window, then create another tab to open another terminal window to SSH into the server. So, I just tab between the two to git push and git pull. Is that what you meant?

No, Well what the story is. I am sharing Media temple with a friend and my website is a sub-domain. And when i log in via SSH it gots to my user dir. But Coda is set up on the ftp in my domain.

So i was wondering is this the workflow? I create a git repo on in the user place. clone it and then add it to my html folder? Or can i make a git repo in my html folder and then clone that?

I am also coming into trouble on how to clone repos that are not github. it makes it easy for me :)

info/refs not found: did you run git update-server-info on the server?

i get that all the time :(

thanks again. I am beating my head on this but i want to know it!

When I first started with Git, it took me a little while to figure out that there is a distinct difference between “remote” repositories and local repositories. Make sure that you start with a bare git repository to pull from and push to. Here’s the process I’m using for private Git repos on our servers:

Create the Remote Repository

The first step is to create a remote Git repository on the staging server. Create a bare Git repository by logging into the server through SSH and running the following commands:

cd /path/to/private/directory
mkdir git
cd git
mkdir repository_name.git
cd repository_name.git
git --bare init

Create the Local Repository

If the local repository has not been created, create the Git repository, commit a file or files to the repository, configure the remote repository and push the repository up to the remote repository. If you want to create a repository from an existing set of templates, run the following commands:

cd /path/to/local/directory
git init
git add .
git commit -m "Initialize repository"
git remote add origin ssh://
git push origin master

Clone the Repository on the Staging Server

To sync the staging server with the local repository, just clone the repository:

cd /path/to/html/directory
git clone /path/to/private/directory/git/repository_name.git

Sync Local Changes with the Staging Server

Then, whenever changes are made to the local repository, push the changes to the remote repository:

git add .
git commit -m "Changes to the repository"
git push origin master

And pull them from the remote repository to the staging area.

cd /path/to/html/directory/repository_name
git pull origin master

Does that help?

This is awesome Stephen! Thank you for sharing this! I have been wanting to learn how we could do this.

Wow! Thank you again!


Nice! thanks so much!. I didnt know i had to create a bare repo! that makes sense. Thanks alot.

How do would I pull the Symphony 2.0.8 RC1 version?

I know I would run this to pull the master (which 2.0.7 master)

git pull git:// master

How would change this pull request to pull Symphony 2.08 RC1?

Clone the repository:

git clone git://

Fetch the tags:

git fetch --tags

Then you can view the tags available

git tag

You should see a list of the tagged releases


Then checkout the release that you want to use

git checkout 2.0.8RC1

Then you can name this branch

git checkout -b 208RC1

You can view all the branches you have created locally with the verbose option

git branch -v

You can do the same for the remote repos you have added

git remote -v

Since the workspace and manifest directories are not tracked in the repository, you should be able to quickly test out different releases by checking out different versions, for example, the latest “stable” release

git checkout master

And back again to the 2.0.8RC1 release

git checkout 208RC1

Just be aware that the database will remain the same, of course, so if there have been database changes between releases, this could impact the stability of the project. So, make sure you are not doing this on a production install.

Edit: I mean switching back and forth between earlier and later releases. This would be the proper process if you are updating to the latest releases.

Stephen, you are the king of Git! Is there a chance to find your “micro tutorials” in one place for future reference?

Very, very helpful Stephen! Thank you so much!

How do I go about pulling in changes to a submodule from another branch?

For instance, I’m having difficulty with the XML importer extension pulling in textarea data. Rowan (buzzomatic) suggested I should pull from the unstable branch on the extension code.

When first installing the extension, I first cloned the repository, git:// . Then I added extension as a submodule, git submodule add git:// extensions/xmlimporter

Now if I want to update the code, I have to run git submodule update --init. But that updates from the master branch.

How do I checkout the unstable branch of the submodule and pull in those changes?

Wait, you added the extension as a submodule of itself?

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details