- IPython notebooks are based on the .json format and contain many different types of data (code, markdown, binary data i.e. images, metadata, ...)
- Basic version control (staging, committing) works, but more complex functionalities can be difficult or even make the file unusable { "cells": [ { "cell_type": "code",
configuration files to determine non-default behavior:
level | file | command | |
---|---|---|---|
system-wide | [path]/etc/gitconfig file | settings to every user and all repositories | $ git config --system |
global | ~/.gitconfig | specific to each user | $ git config --global |
local | .git/config | in the Git directory/specific to a repository | $ git config --local |
DOI:https://doi.org/10.1371/journal.pcbi.1004947
- Tony Rossini: “commit early, commit often, and commit in a repository from which we can easily roll-back your mistakes,”
- Recommended Reading: A quick Introduction to Version Control with Git and GitHub
- Branches in GitHub are a very easy way to work on a code file parallel, while the origin file stays untouched. In most other VCS you will need two files to do this.
- In Git, it is a lot less space consuming - you create Branches. Each Branch is a tip of a commit series. Because of this, Git only creates new Bubbles for the different parts between the files and reconstruct the files like it also does it normally.
- To summarize, Git Branches are only a history of commits divided from the main Branch at some point.
- git reset
It modifies the index (the so-called "staging area"). Or it changes which commit a branch head is currently pointing at. A reset is an operation that takes a specified commit and resets the "three trees" to match the state of the repository at that specified commit. Git reset should generally be considered a 'local' undo method because it adds complications when working with a shared remote repository. If we have a shared remote repository that has a commit pushed to it, and we try to git push a branch where we have reset the history, Git will catch this and throw an error. Git will assume that the branch being pushed is not up to date because of its missing commits. In these scenarios, git revert should be the preferred undo method.
A reset can be invoked in three different modes which correspond to the three trees:
• --soft
– The staged snapshot and working directory are not altered in any way.
• --mixed
– The staged snapshot is updated to match the specified commit, but the workin