Developer

Git & SVN Guide

Compare Git and SVN concepts, search common commands, and browse popular visual version control tools.

ToolCommandPurposeExplanation
Gitgit initCreate repositoryInitialize a new local Git repository.
Gitgit clone <url>Clone repositoryDownload a remote repository with its full history.
Gitgit statusCheck changesShow modified, staged, and untracked files.
Gitgit add <file>Stage changesAdd file changes to the next commit.
Gitgit commit -m "message"CommitRecord staged changes in local history.
Gitgit pullFetch and mergeFetch remote changes and merge them into the current branch.
Gitgit pushUpload commitsSend local commits to a remote repository.
Gitgit branchList branchesShow local branches and the active branch.
Gitgit switch <branch>Switch branchMove the working tree to another branch.
Gitgit switch -c <branch>Create branchCreate and switch to a new branch.
Gitgit merge <branch>MergeMerge another branch into the current branch.
Gitgit rebase <branch>RebaseReplay commits on top of another branch.
Gitgit log --oneline --graphView historyShow compact commit history with branch structure.
Gitgit diffReview changesShow unstaged differences.
Gitgit stashSave workTemporarily store local changes without committing.
Gitgit tag <name>Tag releaseCreate a label for a specific commit.
SVNsvn checkout <url>Checkout repositoryCreate a working copy from an SVN repository URL.
SVNsvn updateUpdate working copyPull latest changes from the repository.
SVNsvn statusCheck changesShow modified, added, deleted, and unversioned files.
SVNsvn add <file>Add fileSchedule a file or directory for version control.
SVNsvn commit -m "message"CommitSend local working copy changes to the central repository.
SVNsvn diffReview changesShow local differences against the base revision.
SVNsvn logView historyShow commit history for the working copy or URL.
SVNsvn infoRepository infoShow repository URL, revision, and working copy metadata.
SVNsvn copy <src> <dst>Branch or tagCreate branches and tags by copying paths in the repository.
SVNsvn merge <url>MergeApply changes from another branch or path.
SVNsvn revert <file>Revert local changeDiscard local edits for a file or directory.
SVNsvn resolve --accept working <file>Resolve conflictMark a conflicted file as resolved after choosing the working copy.

Concepts

Git and SVN terminology

ConceptGitSVN
Repository modelDistributed clone with full history.Central repository with working copies.
Commit scopeCommit locally first, then push.Commit directly to central repository.
BranchingLightweight local and remote branches.Usually repository paths such as /branches/name.
TagsNamed references to commits.Usually copied paths under /tags.
Offline workMost history operations work offline.Many operations require server access.
Conflict resolutionResolve locally, then commit or continue merge/rebase.Resolve working copy conflicts, then commit.

Visual tools

Common GUI clients

GitHub Desktop

Simple Git client focused on GitHub repositories and pull request workflows.

Supports
Git
Platforms
macOS, Windows

SourceTree

Visual history, branches, staging, and remote repository workflows.

Supports
Git, Mercurial
Platforms
macOS, Windows

Fork

Fast Git client with branch graph, interactive rebase, merge conflict tools, and stash support.

Supports
Git
Platforms
macOS, Windows

GitKraken

Graph-focused Git client with integrations for common hosting providers.

Supports
Git
Platforms
macOS, Windows, Linux

Tower

Polished Git client for commits, history, branch management, and conflict workflows.

Supports
Git
Platforms
macOS, Windows

TortoiseGit

Windows Explorer shell integration for Git operations.

Supports
Git
Platforms
Windows

TortoiseSVN

Windows Explorer shell integration for SVN checkout, update, commit, diff, and log.

Supports
SVN
Platforms
Windows

Cornerstone

macOS SVN client for working copies, branches, tags, merge, and history browsing.

Supports
SVN
Platforms
macOS

SmartSVN

Cross-platform SVN client for enterprise and legacy repositories.

Supports
SVN
Platforms
macOS, Windows, Linux

IDE integrations

Many IDEs include built-in source control panels for daily commit, diff, branch, and update tasks.

Supports
Git, SVN
Platforms
VS Code, JetBrains, Xcode and others

FAQ

Questions people ask

When should I use Git?

Use Git for distributed workflows, feature branches, pull requests, code reviews, and modern hosted repositories.

When does SVN still make sense?

SVN can still fit centralized workflows, legacy enterprise repositories, or projects that rely on server-side path-based access control.

Can I copy commands from this guide?

Yes. Each command row has a copy button so you can paste the command into a terminal or notes.

Related tools

Continue working