New to git — how do I get changes from cloned repo into original repo?

This is probably quite a newb question, but I can’t seem to figure it out.

Here’s what I did…

  • Unable to Git-push master to Github
  • How do submit a pull request for a feature branch that has my changes
  • Convert Git repos of without .git extention to gitolite repos having .git extension
  • git and C++ workflow, how to handle object and archive files?
  • command to determine the upstream ref of the current HEAD?
  • How to undo a successful “git cherry-pick”?
  • On the server (via ssh):

    • Created a site on a dedicated server
    • Created a git repo there (git init I think?)
    • Added and committed everything

    At my office:

    • Cloned the repo on my development machine
    • Pulled everything
    • Made some changes to local files
    • Added the files again (is this right? not like svn!)
    • Did a commit
    • Did a push

    …now, on the server, if I do git show, it shows a diff where the server’s last copy of stuff is removed and the stuff I pushed from my office is being added. That’s what I want to happen. What I can’t figure out is: what do I need to do on the server to make the changes I pushed from my office become “live?”

    I’ve had pretty good success deploying websites with svn in the past, and I figure I can get away with it with git too… but obviously I’m missing some piece of the puzzle. Thanks for any help.


    edit – I just noticed this post: Git – pulling changes from clone back onto the master

    Should I be pulling my office repo onto my server instead of pusing it there? So ssh from the office into the server and then have it git+ssh back into the office to pull that repo? That seems kind of crazy, I’d rather figure out how to make the push go through if possible.


    rephrasing the question

    I really just want to apply the patch shown by git show. Does git have a built-in way of doing that?


    answer

    It looks like git checkout -f on the server did what I wanted, but creating a –bare repo would have been a better way to go (I’ve changed to this setup now).

  • Git commands with double dashes
  • Pushing git submodules correctly
  • Git flow and Github
  • How to synchronize multiple git repositories including tags and branches?
  • Create a git diff of a file from SourceTree
  • How to fetch all changes with given topic from gerrit
  • 2 Solutions collect form web for “New to git — how do I get changes from cloned repo into original repo?”

    Usually on the server you would do a git init --bare which creates a repo with no working directory. If that is the route you took then you would have to pull the changes from there to the web directory as the “deployment” step. So your work flow might look like…

    On dev PC:
    
    1. git clone <path to server repo>
    
    *make code changes*
    
    2. git commit -am "fixed a bug"
    
    *add some new feature*
    
    3. git commit -am "added cool new feature"
    
    4. git push origin master
    
    
    On the server:
    
    *cd to www folder*
    
    5. git pull
    
    1. Clones server repo to your dev machine, which you’ve already done
    2. Commits the bug fix to your local repo…not the server’s repo
    3. Commits the new feature to your local repo…again, not the server’s
    4. Pushes all changes from your master branch to the server’s master branch

    At this point, none of your changes are visible on your website. You would need to “deploy” them.

    5.Pulls the latest changes from the central repo on the server to the web server’s folder(s) that are being served up on the web.

    There git tutorials are very good as is “Pro Git”, a free online book

    If the git repo on the server you pushed to is for the live system, you would probably have to do a [EDIT] git reset [--hard|...] HEAD on the server after a push I guess (see git-reset man page for details on whether using --hard or something else; --hard resets all non-committed modifications on your server).

    If the live system is somewhere else on the server, do a git pull from your repo you pushed to (in the directory with your live system).

    push and fetch are complementary, i.e. pushing from A to B is like fetching A from B.
    pull is a fetch followed by a checkout.

    EDIT:
    You should also read the article linked to by jmohr on the subtle differences between push and fetch / pull: git push not send changes to remote git repository

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