Glossary

Glossary#

Tip

Contributing glossary terms or linking to uses of glossary terms to this page is eligible for community badges

absolute path#

the path defined from the root of the system

add (new files in a repository)#

the step that stages/prepares files to be committed to a repository from a local branch

argument#

input to a command line program

bash#

bash or the bourne-again shell is the primary interface in UNIX based systems

bitwise operator#

an operation that happens on a bit string (sequence of 1s and 0s). They are typically faster than operations on whole integers.

branch#

a copy of the main branch (typically) where developmental changes occur. The changes do not affect other branches because it is isolated from other branches.

Compiled Code#

code that is put through a compiler to turn it into lower level assemlby language before it is executed. must be compiled and re-executed everytime you make a change.

detached head#

a state of a git repo where the head pointer is set to a commit without a branch also pointing to the commit

directory#

a collection of files typically created for organizational purposes

divergent#

git branches that have diverged means that there are different commits that have same parent; there are multipe ways that git could fix this, so you have to tell it what strategy to use

fixed point number#

the concept that the decimal point does not move in the number. Cannot represent as wide of a range of values as a floating point number.

floating point number#

the concept that the decimal can move within the number (ex. scientific notation; you move the decimal based on the exponent on the 10). can represent more numbers than a fixed point number.

git#

a version control tool; it’s a fully open source and always free tool, that can be hosted by anyone or used without a host, locally only.

GitHub#

a hosting service for git repositories

.gitignore#

a file in a git repo that will not add the files that are included in this .gitignore file. Used to prevent files from being unnecessarily committed.

git objects#

FIXME something (a file, directory) that is used in git; has a hash associated with it

git Plumbing commands#

low level git commands that allow the user to access the inner workings of git.

git Workflow#

a recipe or recommendation for how to use Git to accomplish work in a consistent and productive manner

HEAD#

a file in the .git directory that indicates what is currently checked out (think of the current branch)

merge#

putting two branches together so that you can access files in another branch that are not available in yours

merge conflict#

when two branches to be merged edit the same lines and git cannot automatically merge the changes

mermaid#

mermaid syntax allows user to create precise, detailed diagrams in markdown files.

hash function#

the actual function that does the hashing of the input (a key, an object, etc.)

hashing#

transforming an input of arbitrary length to a unique fixed length output (the output is called a hash; used in hash tables and when git hashes commits).

integrated development environment#

also known as an IDE, puts together all of the tools a developer would need to produce code (source code editor, debugger, ability to run code) into one application so that everything can be done in one place. can also have extra features such as showing your file tree and connecting to git and/or github.

interpreted code#

code that is directly executed from a high level language. more expensive computationally because it cannot be optimized and therefore can be slower.

issue#

provides the ability to easily track ideas, feedback, tasks, or bugs. branches can be created for specific issues. an issue is open when it is created. pull requests have the ability to close issues. see more in the docs

Linker#

a program that links together the object files and libraries to output an executable file.

option#

also known as a flag, a parameter to a command line program that change its behavior, different from an argument

path#

the “location” of a file or folder(directory) in a computer

pointer#

a variable that stores the address of another variable

pull (changes from a repository)#

download changes from a remote repository and update the local repository with these changes.

pull request#

allow other users to review and request changes on branches. after a pull request recieves approval you can merge the changed content to the main branch.

PR#

short for pull request

push (changes to a repository)#

to put whatever you were working on from your local machine onto a remote copy of the repository in a version control system.

relative path#

the path defined relative to another file or the current working directory; may start with a name, includes a single file name or may start with ./

release#

a distribution of your code, related to a git tag

remote#

a copy of the repository hosted on a server

repository#

a project folder with tracking information in it in the form of a .git directory in it

ROM (Read-Only Memory)#

Memory that only gets read by the CPU and is used for instructions

SHA 1#

the hashing function that git uses to hash its functions (found to have very serious collisions (two different inputs have same hashes), so a lot of software is switching to SHA 256)

sh#

abbr. see shell

shell#

a command line interface; allows for access to an operating system

ssh #

allows computers to safely connect to networks (such as when we used an ssh key to clone our github repos)

templating#

templating is the idea of changing the input or output of a system. For instance, the Jupyter book, instead of outputting the markdown files as markdown files, displays them as HTML pages (with the contents of the markdown file).

terminal#

a program that makes shell visible for us and allows for interactions with it

tree objects#

type of git object in git that helps store multiple files with their hashes (similar to directories in a file system)

yml#

see YAML

YAML #

a file specification that stores key-value pairs. It is commonly used for configurations and settings.

zsh#

zsh or z shell is built on top of the bash shell and contains new features