Can I use git to keep a remote server up to date?

I’m using git to track a project, and if it’s possible, I’d like to set things up so git handles all my code staging, I can have a local repository for testing, and then push changes to the server with git to make them live. However, in trying to use standard git push calls, I just end up with inconsistent branching and a terrible mess of conflicting histories. Is there a way to manage staging using git?

  • git commit message showing file as copied instead of modified. What are the implications?
  • Embed Git revision in executable during remote build with NetBeans
  • What is your way to keep binary dependencies in the version control system?
  • Git/GitHub can't push to master
  • A way to keep a shallow git clone just minimally up to date?
  • Build into gh-pages branch from master branch
  • Removing untracked files
  • HOW TO Avoid git diff putting code block name in hunk header?
  • Using git filter-branch with Python subprocess module
  • The authenticity of host can't be established
  • Updates were rejected because the tip of your current branch is behind
  • Recursively check for git directory updates
  • 2 Solutions collect form web for “Can I use git to keep a remote server up to date?”

    You have in this blog post an example of Git repo used for staging:

    IDE => local Git repository => remote bare Git repository 
                                       => Git repository with the live web application

    It involves a post-update hook on the bare repo side, in order to trigger the update of the repo on the live web server side.

    The final step is to define the “post-update” hook script on the bare repository, which is called when the bare repository receives data.
    To enable the “post-update” hook, we have to either make hooks/post-update executable or rename hooks/post-update.sample to hooks/post-update, depending on the Git version.
    In this script, we simply change to the folder of the live application, and start the pull operation:

    cd $HOME/
    unset GIT_DIR
    git pull bare master
    exec git-update-server-info

    The reason there is a bare remote repo is because it is “discouraged” to do a push into a repo with a working directory.

    Even though git is a distributed version control system, it is usually a good idea to have a central repository (could be a --bareone). It will simplify things.

    Git Baby is a git and github fan, let's start git clone.