Git

Git is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations and full access to internals.

Journal Entries

Avatar

Adding avatar support to git's web interface. The feature is growing way more complex than my original hack, but what a satisfaction! oblomov — 15 days ago

Avatar

Continuous Integration I've implemented support for the Git DVCS in CruiseControl.NET. Its now available in the latest 1.5 builds. dna — 19 days ago

Avatar

git Looking at articles by others in a Japanese magazine I wrote an "intro to git" article for. The primary development host is getting tight, and I am shuffling filesystems around again (as I wrote in http://gitster.livejournal.com/32761.html) instead of cutting 1.6.3-rc3; sigh... gitster — 3 months ago

Avatar

Working on an RCS fast-export for use with git's fast-import oblomov — 8 months ago

Avatar

if you move from svn to git use the opportunity to exclude unwanted files with git-filter-branch dont forget to unlink original heads and git-reflog expire --all --expire-unreachable before cleanup mb0 — 8 months ago

See All Journal Entries


Ratings & Reviews

Community Rating
4.7/5.0

Based on 369 user ratings.

Your Rating

Click to rate this project.

about 1 year ago Avatar
Git - it's what I use

  by merlyn

After having fought various version control systems over the decades, git is a breath of fresh air. Git is a system that is optimized for independent development, where branching and merging are the rule, rather than the exception. Git also provides a compact complete history of the entire project for every repository: compact enough that the current checkout for the linux kernel is twice the size of the entire 2.6 history! Git encourages proper ... [More] development processes, and supports legacy centralized modes of operation as well as distributed development and tiered acceptance. Git plays well with others, having the ability to import and export CVS and SVN and others. My only complaint about git is "why wasn't it around ten years earlier - it would have saved me so many headaches!". [Less]

30 of 31 users found the following review helpful. Was this review helpful to you? |

about 1 year ago Avatar
Git is my friend

    by Bart Massey

I use a lot of different SCMS's these days. Git is my current default. It has some problems; it is quite arcane, and it doesn't work well with Windows. Nonetheless, it is fast and fluid, and supports distributed work extremely well. In situations where the culture and technology permits and a bit of learning curve is OK, Git is a great piece of software.

5 of 5 users found the following review helpful. Was this review helpful to you? |

Links

6 links submitted so far. Submit your own links.

News

Edit RSS feeds.

    [ANNOUNCE]TortoiseGit 0.8.1.0

    http://code.google.com/p/tortoisegit/downloads/list

    = Release 0.8.1.0 =
    == Features ==

    * Improve work flow and reduce click
    Commit: Made user able to push after successful commit
    Show Push Dialog after close commit ... [More] dialog
    Add messagebox to ask if stash change when rebase at dirty work space
    Show GUI friendly diffstat after pull

    * Rebase: Select default upstream based on current tracked remote

    * Improve BrowseRef Dialog
    Add Option to delete multiple refs
    Added 'Switch to this Ref' option
    Fetch context menu item added.
    Add "BrowseRef" to shell extension command.
    Add ability to diff two commits
    Added option to delete remote branch
    Always set initial ref
    Show context menu icons
    Save / Restore window size

    * Add Basic Git-SVN Operation
    Add SVN DCommit Command
    Add "SVN Rebase" and "SVN DCommit" command at shell contextmenu
    Support Git svn-clone at clone dialog.

    * Help Document Updated
    Add git basic book.

    * Add Help button at many dialog

    * Improve Format Patch
    May also select 'format patch...' if selection is continuous.
    Implemented browse buttons and added browsebutton for 'since'.

    * Add TortoiseIDiff to compare picture

    * Enable Bugtraq setting dialog

    * Improve Log dialog
    Ajust label colors when selected. (Not on Vista with themes enabled)
    Add compare with working copy at log dialog
    Ref label borders

    * FileDiffDlg: Make shift right-left button work

    * Branch/Tag dlg: Update 'track' option after browse-refs

    * StatusListCtrl: Implemented delete unversioned file.

    * RebaseDlg: Update rebase lines after browserefs

    == BugFix ==

    * Fix Issue 64: When the graph column is small, the graph sometimes
    appears through the text of the next column on Vista
    * Fix log graph tree mass when dragon scroll bar from left to right
    * Fix Issue 104: Doubleclicking changed submodule dir in Check For
    Modifications dlg, crashes TGit
    * Pull: Fixed bug that when pulling from the configured remote
    branch, git did not update the remote tracking branches.
    * Fix stash problem when svn dcommit at dirty working space
    * Modify Create repository error message
    * Fix Issue #102: Invalid patch e-mails generated
    * Fix submodule update Crash when repository have not submodule
    * Fixed issue #88: Ambiguous dialog message
    * Correct format patch command -num argument
    * PushDlg: Fix: Wrong remote selected after selection via ref-browser.
    * Rebase: Skip in context-menu appeared twice. First one should be pick.
    * Fix Issue #89: Can't locate msysgit on x64
    * Fix Issue #95: TortoiseBlame Icon disappears when selected in the
    settings treeview
    * Fix Issue 94 Commit log showing incorrect timestamps
    * Fix pull don't launch putty key file
    --
    To unsubscribe from this list: send the line "unsubscribe git" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html [Less]

    [ANNOUNCE] GIT 1.6.3.3

    The latest maintenance release, GIT 1.6.3.3, is available at the usual
    places:

    http://www.kernel.org/pub/software/scm/git/

    git-1.6.3.3.tar.{gz,bz2} (source tarball)
    git-htmldocs-1.6.3.3.tar.{gz,bz2} (preformatted ... [More] docs)
    git-manpages-1.6.3.3.tar.{gz,bz2} (preformatted docs)

    The RPM binary packages for a few architectures are found in:

    RPMS/$arch/git-*-1.6.3.3-1.fc9.$arch.rpm (RPM)

    GIT v1.6.3.3 Release Notes
    ==========================

    Fixes since v1.6.3.2
    --------------------

    * "git archive" running on Cygwin can get stuck in an infinite loop.

    * "git daemon" did not correctly parse the initial line that carries
    virtual host request information.

    * "git diff --textconv" leaked memory badly when the textconv filter
    errored out.

    * The built-in regular expressions to pick function names to put on
    hunk header lines for java and objc were very inefficiently written.

    * in certain error situations git-fetch (and git-clone) on Windows didn't
    detect connection abort and ended up waiting indefinitely.

    * import-tars script (in contrib) did not import symbolic links correctly.

    * http.c used CURLOPT_SSLKEY even on libcURL version 7.9.2, even though
    it was only available starting 7.9.3.

    * low-level filelevel merge driver used return value from strdup()
    without checking if we ran out of memory.

    * "git rebase -i" left stray closing parenthesis in its reflog message.

    * "git remote show" did not show all the URLs associated with the named
    remote, even though "git remote -v" did. Made them consistent by
    making the former show all URLs.

    * "whitespace" attribute that is set was meant to detect all errors known
    to git, but it told git to ignore trailing carriage-returns.

    Includes other documentation fixes.

    ----------------------------------------------------------------

    Changes since v1.6.3.2 are as follows:

    Anders Kaseorg (1):
    for-each-ref: Do not lookup objects when they will not be used

    Clemens Buchacher (1):
    refuse to merge during a merge

    Jim Meyering (1):
    use xstrdup, not strdup in ll-merge.c

    Johannes Schindelin (1):
    import-tars: support symlinks

    Johannes Sixt (2):
    fetch-pack: close output channel after sideband demultiplexer terminates
    diff.c: plug a memory leak in an error path

    Junio C Hamano (3):
    t3505: fix abuse of test_expect_code
    attribute: whitespace set to true detects all errors known to git
    GIT 1.6.3.3

    Linus Torvalds (1):
    Fix big left-shifts of unsigned char

    Marco Nelissen (1):
    fix handling of iconv configuration options

    Mark Lodato (1):
    http.c: fix compiling with libcurl 7.9.2

    Michael J Gruber (1):
    builtin-remote: Make "remote show" display all urls

    Miklos Vajna (1):
    git-svn documentation: fix typo in 'rebase vs. pull/merge' section

    Nanako Shiraishi (1):
    .gitattributes: CR at the end of the line is an error

    Paolo Bonzini (2):
    Documentation: git-send-mail can take rev-list arg to drive format-patch
    avoid exponential regex match for java and objc function names

    René Scharfe (1):
    upload-archive: fix infinite loop on Cygwin

    Shawn O. Pearce (1):
    daemon: Strictly parse the "extra arg" part of the command

    Stephen Boyd (3):
    git-rerere.txt: grammatical fixups and cleanups
    pull, rebase: simplify to use die()
    git-show-ref.txt: remove word and make consistent
    v
    Tay Ray Chuan (1):
    http*: cleanup slot->local after fclose

    Thomas Rast (1):
    Documentation: refer to gitworkflows(7) from tutorial and git(1)

    Uwe Kleine-König (1):
    rebase--interactive: remote stray closing parenthesis

    --
    To unsubscribe from this list: send the line "unsubscribe git" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html [Less]

    [ANNOUNCE] EGit and JGit projects have split

    The EGit and JGit projects have now split apart. Up until today
    they were housed in the same repository at repo.or.cz.

    As EGit is moving to the Eclipse Foundation umbrella, we wanted to
    fully split JGit off such that applications ... [More] trying to make use of
    JGit can do so without dragging in the EGit specific code.

    JGit is now here:

    http://repo.or.cz/w/jgit.git
    git://repo.or.cz/jgit.git

    direct patches to git ML
    same maintainers (myself, Robin Rosenberg)

    EGit is still in the same location:

    http://repo.or.cz/w/egit.git
    git://repo.or.cz/egit.git

    direct patches to egit-dev@eclipse.org
    same maintainers (myself, Robin Rosenberg)

    FYI, no history was rewritten. Two commits were introduced to
    create the fork:

    JGit: 9171327f92240a3dbef4a389a2a6378044013803 (rm -rf *egit*)
    EGit: 8f4475f4324599ab704eb1dc3adec92d3b1b85df (rm -rf *jgit*)

    Please update your personal forks and clones as necessary.

    --
    Shawn.
    --
    To unsubscribe from this list: send the line "unsubscribe git" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html [Less]

    [ANNOUNCE]TortoiseGit 0.7.2.0

    http://code.google.com/p/tortoisegit/downloads/list

    version 0.7.1.0 (internal)
    Features:
    *Add bug track plug-in support
    Compatible with TortoiseSVN. The typical plug in is gurtl(google code
    issue ... [More] plug-in).
    http://code.google.com/p/gurtle/.

    *Support browse reference.
    Show all branch, tags information. Support add remote, del branch\tag.

    *Show merged file at log dialog.

    *Update version graphic tree.
    Update graphic tree to qgit2.3

    *Add option -p for TortoisePLink.
    -p is the same as -P. So it is compatible with OpenSSH port option.

    Fix: *Fix Issue 91: clone dialog generates bad directory name based
    on URL, ignores overrid
    *Fix Issue 85: Installer: warns of downgrade when running 0.6.2.0 on
    top of 0.6.1.0
    *Fix i18n.logOutputEncoding doesn't work at log\commit dialog.
    --
    To unsubscribe from this list: send the line "unsubscribe git" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html [Less]

    [ANNOUNCE] GIT 1.6.3.2

    The latest maintenance release GIT 1.6.3.2 is available at the
    usual places:

    http://www.kernel.org/pub/software/scm/git/

    git-1.6.3.2.tar.{gz,bz2} (source tarball)
    git-htmldocs-1.6.3.2.tar.{gz,bz2} (preformatted ... [More] docs)
    git-manpages-1.6.3.2.tar.{gz,bz2} (preformatted docs)

    The RPM binary packages for a few architectures are found in:

    RPMS/$arch/git-*-1.6.3.2-1.fc9.$arch.rpm (RPM)

    GIT v1.6.3.2 Release Notes
    ==========================

    Fixes since v1.6.3.1
    --------------------

    * A few codepaths picked up the first few bytes from an sha1[] by
    casting the (char *) pointer to (int *); GCC 4.4 did not like this,
    and aborted compilation.

    * Some unlink(2) failures went undiagnosed.

    * The "recursive" merge strategy misbehaved when faced rename/delete
    conflicts while coming up with an intermediate merge base.

    * The low-level merge algorithm did not handle a degenerate case of
    merging a file with itself using itself as the common ancestor
    gracefully. It should produce the file itself, but instead
    produced an empty result.

    * GIT_TRACE mechanism segfaulted when tracing a shell-quoted aliases.

    * OpenBSD also uses st_ctimspec in "struct stat", instead of "st_ctim".

    * With NO_CROSS_DIRECTORY_HARDLINKS, "make install" can be told not to
    create hardlinks between $(gitexecdir)/git-$builtin_commands and
    $(bindir)/git.

    * command completion code in bash did not reliably detect that we are
    in a bare repository.

    * "git add ." in an empty directory complained that pathspec "." did not
    match anything, which may be technically correct, but not useful. We
    silently make it a no-op now.

    * "git add -p" (and "patch" action in "git add -i") was broken when
    the first hunk that adds a line at the top was split into two and
    both halves are marked to be used.

    * "git blame path" misbehaved at the commit where path became file
    from a directory with some files in it.

    * "git for-each-ref" had a segfaulting bug when dealing with a tag object
    created by an ancient git.

    * "git format-patch -k" still added patch numbers if format.numbered
    configuration was set.

    * "git grep --color ''" did not terminate. The command also had
    subtle bugs with its -w option.

    * http-push had a small use-after-free bug.

    * "git push" was converting OFS_DELTA pack representation into less
    efficient REF_DELTA representation unconditionally upon transfer,
    making the transferred data unnecessarily larger.

    * "git remote show origin" segfaulted when origin was still empty.

    Many other general usability updates around help text, diagnostic messages
    and documentation are included as well.

    ----------------------------------------------------------------

    Changes since v1.6.3.1 are as follows:

    Alex Riesen (7):
    Introduce an unlink(2) wrapper which gives warning if unlink failed
    replace direct calls to unlink(2) with unlink_or_warn
    print unlink(2) errno in copy_or_link_directory
    Clarify kind of conflict in merge-one-file helper
    ls-tree manpage: use "unless" instead of "when ... is not"
    ls-tree manpage: output of ls-tree is compatible with update-index
    http-push.c::remove_locks(): fix use after free

    Charles Bailey (2):
    t6023: merge-file fails to output anything for a degenerate merge
    Change xdl_merge to generate output even for null merges

    Clemens Buchacher (1):
    fix segfault showing an empty remote

    Dan McGee (1):
    Fix type-punning issues

    Daniel Cordero (1):
    builtin-checkout: Don't tell user that HEAD has moved before it has

    Dave Olszewski (1):
    merge-recursive: never leave index unmerged while recursing

    Giuseppe Bilotta (1):
    completion: use git rev-parse to detect bare repos

    Jeff King (6):
    fix GIT_TRACE segfault with shell-quoted aliases
    add: don't complain when adding empty project root
    for-each-ref: fix segfault in copy_email
    lock_ref: inform callers of unavailable ref
    fetch: report ref storage DF errors more accurately
    fix cat-file usage message and documentation

    Jim Meyering (2):
    format-patch let -k override a config-specified format.numbered
    pre-commit.sample: don't print incidental SHA1

    Johannes Schindelin (2):
    Add NO_CROSS_DIRECTORY_HARDLINKS support to the Makefile
    Cope better with a _lot_ of packs

    Johannes Sixt (1):
    t3701: ensure correctly set up repository after skipped tests

    Junio C Hamano (8):
    Revert "git-add--interactive: remove hunk coalescing"
    completion: fix PS1 display during a merge on detached HEAD
    completion: simplify "current branch" in __git_ps1()
    completion: enhance "current branch" display
    Prepare for 1.6.3.2
    Update draft release notes for 1.6.3.2
    blame: correctly handle a path that used to be a directory
    GIT 1.6.3.2

    Linus Torvalds (3):
    Avoid unnecessary 'lstat()' calls in 'get_stat_data()'
    Teach 'git checkout' to preload the index contents
    dir.c: clean up handling of 'path' parameter in read_directory_recursive()

    Matt Graham (1):
    Splitting a hunk that adds a line at the top fails in "add -p"

    Michael J Gruber (1):
    merge-options.txt: Clarify merge --squash

    Nanako Shiraishi (1):
    test: checkout shouldn't say that HEAD has moved if it didn't

    Nicolas Pitre (1):
    allow OFS_DELTA objects during a push

    René Scharfe (4):
    grep: fix word-regexp colouring
    grep: fix word-regexp at the beginning of lines
    grep: fix colouring of matches with zero length
    grep: fix empty word-regexp matches

    Stephen Boyd (6):
    api-parse-options.txt: use 'func' instead of 'funct'
    tests: Add tests for missing format-patch long options
    completion: add missing options to show-branch and show
    show-branch: Fix die message in parse_reflog_param()
    commit: -F overrides -t
    apply, fmt-merge-msg: use relative filenames

    Thomas Rast (2):
    Documentation: teach stash/pop workflow instead of stash/apply
    add -i: do not dump patch during application

    Tony Kemp (1):
    Turn on USE_ST_TIMESPEC for OpenBSD

    --
    To unsubscribe from this list: send the line "unsubscribe git" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html [Less]

Read all Git articles…

Download Page
85 downloads

Who uses Git?

Avatar Avatar Avatar Avatar Avatar Avatar Avatar Avatar Avatar Avatar Avatar Avatar

Who contributes to Git?

Avatar Avatar Avatar Avatar Avatar Avatar Avatar Avatar
I'm a contributor

Who manages Git?

Avatar
I'm a manager

Where in the world?



Related Projects by Tags

Bazaar Version Control, Cvs2Svn, git-cola, Mercurial, TkCVS


People who use Git also use:

Stacked Git pip


Project Cost

This calculator estimates how much it would cost to hire a team to write this project from scratch. More »
Include
Codebase 193,401
Effort (est.) 50 Person Years
Avg. Salary $ year
$ 2,765,178