Git for Research & Project Management

Table of Contents

Nothing new or original, but integrated, extensive, collaborative, and reproductive…

1. Summary

This effort is pursuing an integration in a platform to achieve automation for conducting research in a more complete workflow. Based on a platform Emacs, a more complete workflow will be designed to undertake project and research management. Distributed teamwork will be built based on Git and the management will be maintained through GitHub. To facilitate conducting research, Emacs will be customised for documenting, referencing and paper drafting with a set of packages as plugins. For sharing the research outcomes, information will be delivered through various streams, such as publications, web pages, repositories in GitHub and so on with the controls of scops to achieve reproducibility. The automation in this platform will facilitate the development of novel research ideas based on teamwork and effective supervison management.


The initial draft is planned to be achieved by the end of this year, 20222.

1.1. Keywords

1.1.1. Tools

Emacs, Git/GitHub, Overleaf

1.1.2. Features

1.1.3. Goals

2. Objectives

  • Integration
  • Collaboration
  • Automation
  • Effectiveness
  • Extensibility
  • Reproducibility

3. Introduction to a plateform

Research outputs, such as datasets, statistical code, figures, lab notes, and manuscripts.

How this palteform can be leveraged to make research conducting more effective, managable, collaborative, and reproductive.

"Mantaining a higher degree of transparency in scientific reporting for gaining trust and credibility within the scientific community but also for facilitating the development of new ideas"

3.1. A localised integrated system based on Emacs

This integrated platform will be based on Emacs to facilitate teamwork for condctiong research. Emacs is an extensible and customisable editor with a wide range of functionality beyond text editing, including project planning, literate programming, note taking, paper exporting and website publishing and so on. Based on an extensible core engine that uses a dialect of the Lisp language, Emacs can be customised as a productivity environment with several packages or plugins, such as Magit, AUCTeX, project-title, zotxt, pdf-tools and so on.

3.2. Org-mode for keeping notes, maintaining TODO lists, and project planning

Org is a mode for keeping notes, maintaining TODO lists, and project planning with a fast and effective plain-text markup language. It also is an authoring system with unique support for literate programming and reproducible research.

3.3. Org-roam to manage knowledge as a network

A note-taking tool for networked thought. As easy to use as a document. As powerful as a graph database. Roam helps you organize your research for the long haul.

A plain-text personal knowledge management system.

Some novel features are listed as follows:

  • Private and Secure Edit your personal wiki completely offline, entirely in your control. Encrypt your notes with GPG. Take lasting notes in plain-text.
  • Make Connections Connect notes and thoughts together with ease using backlinks. Discover surprising and previously unseen connections in your notes with the built-in graph visualization.
  • Extensible and Powerful Leverage Emacs' fantastic text-editing interface, and the mature Emacs and Org-mode ecosystem of packages.
  • Free and Open Source Org-roam is licensed under the GNU General Public License version 3 or later. You are free to extend its functionality and contribute back.

Org-roam is a tool for networked thought. It reproduces some of Roam Research’s 1 key features within Org-mode.

Org-roam allows for effortless non-hierarchical note-taking: with Org-roam, notes flow naturally, making note-taking fun and easy. Org-roam augments the Org-mode syntax, and will work for anyone already using Org-mode for their personal wiki.

Org-roam leverages the mature ecosystem around Org-mode. For example, it has first-class support for org-ref for citation management, and is able to piggyback off Org’s excellent LaTeX and source-block evaluation capabilities.

Org-roam provides these benefits over other tooling:

  • Privacy and Security:
    Your personal wiki belongs only to you, entirely offline and in your control. Encrypt your notes with GPG.
  • Longevity of Plain Text:
    Unlike web solutions like Roam Research, the notes are first and foremost plain Org-mode files – Org-roam simply builds an auxiliary database to give the personal wiki superpowers. Having your notes in plain-text is crucial for the longevity of your wiki. Never have to worry about proprietary web solutions being taken down. The notes are still functional even if Org-roam ceases to exist.
  • Free and Open Source:
    Org-roam is free and open-source, which means that if you feel unhappy with any part of Org-roam, you may choose to extend Org-roam, or open a pull request.
  • Leverage the Org-mode ecosystem:
    Over the decades, Emacs and Org-mode has developed into a mature system for plain-text organization. Building upon Org-mode already puts Org-roam light-years ahead of many other solutions.
  • Built on Emacs:
    Emacs is also a fantastic interface for editing text, and Org-roam inherits many of the powerful text-navigation and editing packages available to Emacs.

3.4. Work with Git and Github

3.5. Integration with other services

4. Emacs and packages

4.1. Emacs Basic Operations

  • Emacs Tutorial "C-h t" or "M-x help-with-tutorial" to be familiar with Emacs basic operations.
  • Learn how to navigate the help system: C-h f search (with tab completion) for the name of an M-x command. Great little search engine if you have an idea of what command you want but not exactly what it is called. Pressing enter on a selection it shows the Help screen for that function.

    C-h v search (with tab completion) for a configuration variable, otherwise same as C-h f

    C-h w enter a command name, if it is bound to a key, this tells you which key you can press to trigger that command.

    C-h k <Key-Chord> tells you what command is run by typing that key chord.

    C-h l "lossage," if you accidentally type a key chord and triggered some command but you don't know what it was, this screen shows you a history of the commands you most recently executed so you can figure out what you did, and that can help you to figure out how to undo it (or do it again, if it did something you thought was cool).

    C-h m show all the keybindings for the current major and minor mode. This is handy if you are using a mode/app you aren't familiar with and you want an idea of all the commands you can do.

    C-h r jump to the Emacs "info" manual

    C-h i jump to the system-wide "info" manual, a menu of all "info" manual documentation installed.

    q closes the Help screen and the info screen and puts you back to where you were.

    C-x o switches your cursor between split-screens without the mouse.

    Also, learn how to read the Emacs "info" manual. When you are in the Emacs info manual browser:

    m is the "menu search" command – not a pull-down menu, but "menu" is what they call the table of contents. So pressing m lets you search for a section of the manual by keyword, and it provides tab completion.

    i is the "index search" command – also with tab completion, lets you search for an indexed term (much like searching through the index in the back of a textbook).

    l "last", like the "back" button in your web browser

    r opposite of l, like the "forward" button in your web browser.

    L (capital L, as opposed to lowercase) shows your info browser history.

    t go back to the table of contents

    s full text search by regular expression, kind of like Ctrl-F in the web browser but scans across the whole manual. Use comma , and period . to jump to the next/previous match (respectively).

4.2. Emacs Customisation


4.3. Useful packages

Magit provides a complete, text-based Git integration solution directly into Emacs. By using Magit, you can perform Git activities such as committing code and performing diff operations.

AUCTEX is an extensible package for writing and formatting TxX files in Emacs. It supports many different TeX macro packages, including AMS-TEX, LATEX, Texinfo, ConTEXt, and docTEX (dtx files). AUCTEX includes preview-latex which makes LATEX a tightly integrated component of your editing workflow by visualizing selected source chunks (such as single formulas or graphics) directly as images in the source buffer.

5. Git/GitHub

5.1. Introduction of Git

"Git is a lightweight robust framework that is ideal for managing the full suite of reearch outputs such as datasets, statistic code, figures, lab notes, and manuscripts. "

  • Git can contribute conduction research and project management in several pillows:
    • Greater Reproducibility
    • increased transparency
    • Developing new ideas
    • Distributed teamwork.
    • Work asynchronously

5.2. Why is helpful & useful for research

5.3. How to use git

5.3.1. Installation

5.3.2. Basic settings

5.3.3. Create your first repository

6. Overleaf for paper drafting

7. Documenting

  • Using Org-mode A GNU Emacs major mode for keeping notes, authoring documents, computational notebooks, literate programming, maintaining to-do lists, planning projects, and more — in a fast and effective plain text system.

    Some features are listed as follows:

    • Elegant Markup
    • Structured Editing
    • Transparent Tables
    • Superior Source Code
    • Export and Publish
    • Take Control of Tasks
    • Actionable Agendas
    • Clocking
    • Capture Data From Anywhere
    • Extremely Extensible

7.1. Org-mode

7.1.1. Note-taken

7.3. A universal document converter – Pandoc

8. Referncing

8.1. How to use Zotero

8.2. How to use Better BibTeX

8.3. How to use Zotxt

9. Management

9.1. Teamwork

10. Integration in org-roam

10.1. Bibliography

Org 9.5 added native citation and bibliography functionality, called “org-cite”, which org-roam supports.

org-roam-bibtex offers tight integration between org-ref, helm-bibtex and org-roam. This helps you manage your bibliographic notes under org-roam.

For example, though helm-bibtex provides the ability to visit notes for bibliographic entries, org-roam-bibtex extends it with the ability to visit the file with the right ROAMREFS.

11. Publish and distributed

12. Communication

13. Security and Privacy

14. More and More

Facilities – Research Skills – Outcomes & Performance

15. Reference

16. Declaration

This effort is to build an effective environment for conducting research. We base on XXX license to redistribute these online resources. There is nothing new created by the contributors and we try our best to specify the original resources. Any concerns, please contact us (email: to clarify the interest conflicts.

Date: 2021-05-31 Mon 00:00

Author: J.L Gray, L Tulele & Y.E Lin

Created: 2023-02-24 Fri 10:07