Git-svn operation philosophy?

How does gitsvn operate?

I have access to an svn repository at work but I’m going to start to work with a distributed team and I’d like to start to fire up git use on this project (as a pilot).

  • When cloning git repo under Windows I get “error: unable to create file <file>… (Is a directory)”
  • RA layer request failed? what git-svn did to the repo?
  • Work with Git and SVN at the same time
  • hg addremove in git
  • Make an existing Git branch track a remote branch with JGit?
  • Install and Deploy Django app on Heroku
  • Does .gitignore work on commit, push, or upon reaching the server?
  • How do I edit an existing tag message in git?
  • Unable to update my Local Git repo based on SVN
  • How do I tell git to always select my local version for conflicted merges on a specific file?
  • How to configure git repository so a branch other than master is checked out after a cloning?
  • Is it possible to detect whether a http git remote is smart or dumb?
  • 2 Solutions collect form web for “Git-svn operation philosophy?”

    Because svn doesn’t support the same range and style of branching/merging as git does, you will be limited as to how much of that you can do with the upstream repository. Locally however, it is just a normal git repository, so you can branch and merge and cherry-pick and rebase and everything else your heart desires.

    The differences to worry about are interacting with upstream: rather than git pull as you would normally use to update the changes, you’ll use git svn rebase, and git will try to replay your local commits onto the remote HEAD, stopping along the way and letting you know about the conflicts you need to resolve, if any (rather than merging them, as is normal with pure git repositories). When you commit, you’ll use git svn dcommit, which makes your local commits into a linear history and applies them to the upstream HEAD in svn.

    To add to Matt Enright’s answer, consider also svn2git (and the reverse script
    git2svn), in order to get a more git-like repository structure.
    (i.e. try to not have the branches as directory, like they are in SVN)

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