Re-ordered and organised some bits
This commit is contained in:
parent
521113eba1
commit
92cdfebd8a
2 changed files with 117 additions and 81 deletions
|
@ -1,6 +0,0 @@
|
||||||
import sys
|
|
||||||
def main():
|
|
||||||
print("Hello")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
192
main.latex
192
main.latex
|
@ -35,7 +35,11 @@
|
||||||
|
|
||||||
\usetheme{default}
|
\usetheme{default}
|
||||||
\beamertemplatenavigationsymbolsempty
|
\beamertemplatenavigationsymbolsempty
|
||||||
\hypersetup{pdfpagemode=UseNone} % don't show bookmarks on initial view
|
\hypersetup{%
|
||||||
|
colorlinks=true,
|
||||||
|
urlcolor=blue,
|
||||||
|
%pdfpagemode=UseNone
|
||||||
|
} % don't show bookmarks on initial view
|
||||||
|
|
||||||
%\lstset{%
|
%\lstset{%
|
||||||
% breaklines=true,
|
% breaklines=true,
|
||||||
|
@ -70,25 +74,25 @@
|
||||||
|
|
||||||
Microsoft recently moved to git for version controlling Windows and Office.
|
Microsoft recently moved to git for version controlling Windows and Office.
|
||||||
|
|
||||||
I will not be able to cover everything relating to Git, it is an incredibly powerful tool.
|
|
||||||
However, hopefully I will be able to give you enough to get started and at least understand the
|
|
||||||
official documentation.
|
|
||||||
}
|
}
|
||||||
|
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{Aims}
|
\frametitle{Aims}
|
||||||
I am obviously not going to be able to go over everything that git does.
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item I don't know everything Git does
|
\item Go through some basic operations to help you use git
|
||||||
\item Git does LOADS of stuff
|
\item Give you enough of a grounding to understand the official documentation
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
\note{%
|
||||||
|
I am obviously not going to be able to go over everything that git does because it does so much.
|
||||||
|
|
||||||
Hopefully after this you will be able to use Git well for most day-to-day tasks. Git has very
|
Hopefully after this you will be able to use Git well for most day-to-day tasks. Git has very
|
||||||
compressive documentation. I hope that this will also give you enough of a background to
|
compressive documentation. I hope that this will also give you enough of a background to
|
||||||
understand the documentation.
|
understand the documentation.
|
||||||
\note{%
|
|
||||||
}
|
}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{What is Git}
|
\frametitle{What is Git}
|
||||||
|
|
||||||
|
@ -114,6 +118,21 @@
|
||||||
}
|
}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{What is Git}
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\Huge Git $\ne$ Github
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
\note{%
|
||||||
|
Although the names are similar, Git and Github are separate projects. Github is a Microsoft
|
||||||
|
owned, closed source company that is a remote repository for Git projects.
|
||||||
|
|
||||||
|
There are others such as Bitbucket, Gitlab, Gitea
|
||||||
|
}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{Obligitary XKCD Comic}
|
\frametitle{Obligitary XKCD Comic}
|
||||||
|
@ -159,7 +178,7 @@ can really help.
|
||||||
git --version
|
git --version
|
||||||
\end{minted}
|
\end{minted}
|
||||||
|
|
||||||
\href{https://gitforwindows.org/}{Git for Windows: https://gitforwindows.org/}
|
Git for Windows: \href{https://gitforwindows.org/}{https://gitforwindows.org/}
|
||||||
|
|
||||||
\note{%
|
\note{%
|
||||||
Git is probably already installed if you are on a Linux system. However, if not, it will
|
Git is probably already installed if you are on a Linux system. However, if not, it will
|
||||||
|
@ -385,64 +404,6 @@ can really help.
|
||||||
}
|
}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}
|
|
||||||
\frametitle{Commits / Branches}
|
|
||||||
\begin{center}
|
|
||||||
\begin{tikzpicture}
|
|
||||||
%\draw (-1.5,-1.5) rectangle (7.5,1.5);
|
|
||||||
%\node at (-2.5,0) {master};
|
|
||||||
\node[commit] at (0,0) (commit1) {};
|
|
||||||
\node[commit] at (2,0) (commit2) {A};
|
|
||||||
\node[commit] at (4,0) (commit3) {B};
|
|
||||||
\node[commit] at (4,-2) (commit3b) {C};
|
|
||||||
\draw[arrow] (commit1) -- (commit2);
|
|
||||||
\draw[arrow] (commit2) -- (commit3);
|
|
||||||
\draw[arrow] (commit2) -- (commit3b);
|
|
||||||
\end{tikzpicture}
|
|
||||||
\end{center}
|
|
||||||
\note{%
|
|
||||||
The linear graph we just saw is an overly simplistic representation. In reality, Git
|
|
||||||
represents history using a Directed acyclic graph which allows parents to be shared my
|
|
||||||
multiple commits. This is useful because it allows for Branches. We will look at these a bit
|
|
||||||
more later.
|
|
||||||
|
|
||||||
It is good practice to develop features on a separate branch. This allows for multiple
|
|
||||||
people to work on a project as well as allowing things like bug-fixes to be deployed without
|
|
||||||
having to worry about interference from a new feature.
|
|
||||||
}
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
\begin{frame}
|
|
||||||
\frametitle{Commits / Branches}
|
|
||||||
\begin{center}
|
|
||||||
\begin{tikzpicture}
|
|
||||||
%\draw (-1.5,-1.5) rectangle (7.5,1.5);
|
|
||||||
%\node at (-2.5,0) {master};
|
|
||||||
\node[commit] at (0,0) (commit1) {};
|
|
||||||
\node[commit] at (2,0) (commit2) {};
|
|
||||||
\node[commit] at (5,0) (commit4) {A};
|
|
||||||
\node[commit] at (8,0) (commit5) {C};
|
|
||||||
\node[commit] at (4,-2) (commit3b) {};
|
|
||||||
\node[commit] at (6,-2) (commit4b) {B};
|
|
||||||
\draw[arrow] (commit1) -- (commit2);
|
|
||||||
\draw[arrow] (commit2) -- (commit4);
|
|
||||||
\draw[arrow] (commit4) -- (commit5);
|
|
||||||
\draw[arrow] (commit2) -- (commit3b);
|
|
||||||
\draw[arrow] (commit3b) -- (commit4b);
|
|
||||||
\draw[arrow] (commit4b) -- (commit5);
|
|
||||||
\end{tikzpicture}
|
|
||||||
\end{center}
|
|
||||||
\note{%
|
|
||||||
As well as 2 commits' ability to share a parent, the opposite is also true, Here, we see
|
|
||||||
that a commit is able to have multiple parents.
|
|
||||||
|
|
||||||
This is called a merge commit - because it merges two branches. In a lot of situations git
|
|
||||||
is smart enough to auto-merge branches although at times human intervention is necessary.
|
|
||||||
|
|
||||||
By default, git creates a branch called Master when you create a repository.
|
|
||||||
}
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
|
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{Create a repository}
|
\frametitle{Create a repository}
|
||||||
|
@ -675,6 +636,8 @@ can really help.
|
||||||
}
|
}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{References}
|
\frametitle{References}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
|
@ -732,15 +695,89 @@ can really help.
|
||||||
}
|
}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
\begin{frame}[fragile]
|
|
||||||
\frametitle{Branches}
|
\frametitle{Branches}
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
|
\item By default Git will create a branch called Master (maybe?).
|
||||||
\item Allows multiple features to be developed in parallel without interference.
|
\item Allows multiple features to be developed in parallel without interference.
|
||||||
\item Allows multiple people to collaborate easily.
|
\item Allows multiple people to collaborate easily.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
\note{%
|
||||||
|
So, when I originally wrote this slide, git would create a branch called master by default.
|
||||||
|
The convention was that this was your "main" branch. Currently on my system it still does
|
||||||
|
although there is a movement to switch the default to main or primary or something similar.
|
||||||
|
|
||||||
|
I have no intentions to make this a political talk so make of it what you want.
|
||||||
|
}
|
||||||
|
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{Commits / Branches}
|
||||||
|
\begin{center}
|
||||||
|
\begin{tikzpicture}
|
||||||
|
%\draw (-1.5,-1.5) rectangle (7.5,1.5);
|
||||||
|
%\node at (-2.5,0) {master};
|
||||||
|
\node[commit] at (0,0) (commit1) {};
|
||||||
|
\node[commit] at (2,0) (commit2) {A};
|
||||||
|
\node[commit] at (4,0) (commit3) {B};
|
||||||
|
\node[commit] at (4,-2) (commit3b) {C};
|
||||||
|
\draw[arrow] (commit1) -- (commit2);
|
||||||
|
\draw[arrow] (commit2) -- (commit3);
|
||||||
|
\draw[arrow] (commit2) -- (commit3b);
|
||||||
|
\draw[draw=red] (-1,1) rectangle (5,-0.99);
|
||||||
|
\node[fill=red,text=white,anchor=north west] at (-1,1) {Branch 1};
|
||||||
|
\draw[draw=green] (-1,-1) rectangle (5,-3);
|
||||||
|
\node[fill=green,text=white,anchor=north west] at (-1,-1) {Branch 2};
|
||||||
|
\end{tikzpicture}
|
||||||
|
\end{center}
|
||||||
|
\note{%
|
||||||
|
The linear graph we just saw is an overly simplistic representation. In reality, Git
|
||||||
|
represents history using a Directed acyclic graph which allows parents to be shared my
|
||||||
|
multiple commits. This is useful because it allows for Branches.
|
||||||
|
|
||||||
|
It is good practice to develop features on a separate branch. This allows for multiple
|
||||||
|
people to work on a project as well as allowing things like bug-fixes to be deployed without
|
||||||
|
having to worry about interference from a new feature.
|
||||||
|
}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{Commits / Branches}
|
||||||
|
\begin{center}
|
||||||
|
\begin{tikzpicture}
|
||||||
|
%\draw (-1.5,-1.5) rectangle (7.5,1.5);
|
||||||
|
%\node at (-2.5,0) {master};
|
||||||
|
\node[commit] at (0,0) (commit1) {};
|
||||||
|
\node[commit] at (2,0) (commit2) {};
|
||||||
|
\node[commit] at (5,0) (commit4) {A};
|
||||||
|
\node[commit] at (8,0) (commit5) {C};
|
||||||
|
\node[commit] at (4,-2) (commit3b) {};
|
||||||
|
\node[commit] at (6,-2) (commit4b) {B};
|
||||||
|
\draw[arrow] (commit1) -- (commit2);
|
||||||
|
\draw[arrow] (commit2) -- (commit4);
|
||||||
|
\draw[arrow] (commit4) -- (commit5);
|
||||||
|
\draw[arrow] (commit2) -- (commit3b);
|
||||||
|
\draw[arrow] (commit3b) -- (commit4b);
|
||||||
|
\draw[arrow] (commit4b) -- (commit5);
|
||||||
|
\draw[draw=red] (-1,1) rectangle (9,-0.99);
|
||||||
|
\node[fill=red,text=white,anchor=north west] at (-1,1) {Branch 1};
|
||||||
|
\draw[draw=green] (-1,-1) rectangle (9,-3);
|
||||||
|
\node[fill=green,text=white,anchor=north west] at (-1,-1) {Branch 2};
|
||||||
|
\end{tikzpicture}
|
||||||
|
\end{center}
|
||||||
|
\note{%
|
||||||
|
As well as 2 commits' ability to share a parent, the opposite is also true, Here, we see
|
||||||
|
that a commit is able to have multiple parents.
|
||||||
|
|
||||||
|
This is called a merge commit - because it merges two branches. In a lot of situations git
|
||||||
|
is smart enough to auto-merge branches although at times human intervention is necessary.
|
||||||
|
}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}[fragile]
|
||||||
\begin{minted}{bash}
|
\begin{minted}{bash}
|
||||||
# List Branches
|
# List Branches
|
||||||
git branch # -v adds more info
|
git branch # -v adds more info
|
||||||
|
@ -909,7 +946,6 @@ can really help.
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item HTTP(S)
|
\item HTTP(S)
|
||||||
\item SSH
|
\item SSH
|
||||||
\item GIT
|
|
||||||
\item Local Filesystem
|
\item Local Filesystem
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
@ -1055,16 +1091,22 @@ can really help.
|
||||||
|
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{Useful supporting tools}
|
\frametitle{Useful supporting tools}
|
||||||
\framesubtitle{RigGrep / Fd}
|
\framesubtitle{RipGrep / Fd / Exa}
|
||||||
|
|
||||||
|
\textbf{FD} replaces find
|
||||||
|
|
||||||
\href{https://github.com/sharkdp/fd}{https://github.com/sharkdp/fd}
|
\href{https://github.com/sharkdp/fd}{https://github.com/sharkdp/fd}
|
||||||
|
|
||||||
|
\textbf{RigGrep} replaces grep
|
||||||
|
|
||||||
\href{https://github.com/BurntSushi/ripgrep}{https://github.com/BurntSushi/ripgrep}
|
\href{https://github.com/BurntSushi/ripgrep}{https://github.com/BurntSushi/ripgrep}
|
||||||
|
|
||||||
|
\textbf{Exa} replaces ls
|
||||||
|
|
||||||
|
\href{https://github.com/ogham/exa}{https://github.com/ogham/exa}
|
||||||
\note{%
|
\note{%
|
||||||
Alternatives to grep and find
|
|
||||||
|
|
||||||
Fd, in particular, is not a full replacement for find but does most of what you want
|
Fd and RipGrep will respect your gitignore by default.
|
||||||
|
|
||||||
Both (by default) will respect your gitignore file.
|
|
||||||
}
|
}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue