Dear fellow org-ers, it's time to pay back to the community. I'm coming back to a feature request by Torsten Wagner, who needed an org link to a specific version of a file for his lab book (see http://permalink.gmane.org/gmane.emacs.orgmode/15774). Recently I needed the same thing to organize a collaboration project. I am therefore happy to announce org-git-link.el, which implements this feature. The emacs lisp file (which is all you need) is attached for convenience. The README file can be found together with a testsuite at http://github.com/ReimarFinken/org-git-link. `org-git-link.el' defines two new link types. The `git' link type is meant to be used in the typical scenario and mimics the `file' link syntax as closely as possible. The `gitbare' link type exists mostly for debugging reasons, but also allows e.g. linking to files in a bare git repository for the experts. Typical uses look like - [[git:../data/result.png::master@{3.10.2009}]] - [[git:~/repo/data/results.png::nobelprize]] (Tag nobelprize) - [[gitbare:../.git::nobelprize:data/results.png]] (Specify git dir and object reference directly) Following any of the git links checks out the specified version into a temporary file. Care is taken that each file is checked out once, even when they are referenced by different search strings (e.g. once by branch name and once by tag). The file is supsequently opened using `org-open-file', which does the right thing for non-text files as well. As an org mode is a simple text file, a git link can of course be inserted directly as a string. For your convenience two functions creating links automatically have been defined: org-git-store-link: This function is automatically added to `org-store-link-functions'. When `org-store-link' (usually bound to `C-c l') is called in a buffer whose file is in a git repository, it creates a git link to the file version corresponding to the current branchname and date. The link is then added to `org-stored-links', from where it can be inserted with `org-insert-link(-global)', usually bound to `C-c C-l'. org-git-insert-link-interactively: This function interactively asks for a file name, a search string, and a description. The corresponding link is then inserted at point. Currently the only advantage over writing the link directly is file completion. Completion of the search string with the help of current tags and branch names might be implemented at a later stage, if demand exists. Activate by putting the file somewhere in your load-path and evaluate (require 'org-git-link). Enjoy!