Git – setting up a remote repository and doing an initial push

There is a great deal of documentation and many posts on Git out there, so this is more of a note to self as I keep forgetting the steps needed to set up a remote repository and doing an initial “push”.

So, firstly setup the remote repository:

ssh git@example.com
mkdir my_project.git
cd my_project.git
git init --bare
git update-server-info # If planning to serve via HTTP
exit

On local machine:

cd my_project
git init
git add *
git commit -m "My initial commit message"
git remote add origin git@example.com:my_project.git
git push -u origin master

Done!

Team members can now clone and track the remote repository using the following:

git clone git@example.com:my_project.git
cd my_project

Bonus

To have your terminal prompt display what branch you are currently on in green, add the following to your ~/.bash_profile (I have my current directory displayed in cyan):

function git-branch-name {
  git symbolic-ref HEAD 2>/dev/null | cut -d"/" -f 3
}
function git-branch-prompt {
  local branch=`git-branch-name`
  if [ $branch ]; then printf " [%s]" $branch; fi
}
PS1="\u@\h \[\033[0;36m\]\W\[\033[0m\]\[\033[0;32m\]\$(git-branch-prompt)\[\033[0m\] \$ "

61 thoughts on “Git – setting up a remote repository and doing an initial push

  1. puiseux

    does not work for me !
    fatal: ‘me@myremote/xxx…/’ does not appear to be a git repository
    fatal: The remote end hung up unexpectedly

  2. Pingback: my git reminder

  3. Chuck

    Make sure the git user and group owns the repository directory on the remote. If it doesn’t, use the chown command to make the proper changes.

  4. Zeus DiGriz

    Ah, you have to create the remote project first. I skipped that step thinking it would be created automatically with the first push. Of course, it took a few more dead ends to figure out how to get everything in sync again since the remote repository was created after the local one.

    It’s not difficult, just a little confusing figuring it out.

    It would be helpful to update the post for anyone who might make the same mistake. ;-)

    Thanks for the tip!

  5. Pingback: Getting Started with GIT for Designers

  6. Sebastian Cork

    I receive the following error in the shell after adding the bonus function to my .bash_profile:

    sed: -e expression #2, char 4: unterminated `s’ command

  7. Pingback: Setting up GIT on a Windows computer | Diary of a Web Dev

  8. Pingback: Git branch in prompt | jh.net

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>