From 156e910b85c5b54865195511dfde795a263e765b Mon Sep 17 00:00:00 2001 From: Kenneth Odle Date: Sat, 17 Aug 2024 20:58:52 -0400 Subject: [PATCH] Initial commit --- .gitignore | 18 ++ git-primer.tex | 377 ++++++++++++++++++++++++++++++++++ images/gitea-online-edit.png | Bin 0 -> 11116 bytes include/branchrename.tex | 3 + include/checkout.tex | 3 + include/clone.tex | 3 + include/debgitinstall.tex | 3 + include/fedgitinstall.tex | 3 + include/installmeld.tex | 3 + include/merge.tex | 3 + include/pull.tex | 3 + include/push.tex | 3 + include/remoteadd.tex | 3 + include/remoteremove.tex | 3 + include/snapinstallokular.tex | 3 + include/snaprefresh.tex | 3 + include/sudofindsnap.tex | 3 + include/sudoinstallkf6.tex | 3 + 18 files changed, 440 insertions(+) create mode 100644 .gitignore create mode 100644 git-primer.tex create mode 100644 images/gitea-online-edit.png create mode 100644 include/branchrename.tex create mode 100644 include/checkout.tex create mode 100644 include/clone.tex create mode 100644 include/debgitinstall.tex create mode 100644 include/fedgitinstall.tex create mode 100644 include/installmeld.tex create mode 100644 include/merge.tex create mode 100644 include/pull.tex create mode 100644 include/push.tex create mode 100644 include/remoteadd.tex create mode 100644 include/remoteremove.tex create mode 100644 include/snapinstallokular.tex create mode 100644 include/snaprefresh.tex create mode 100644 include/sudofindsnap.tex create mode 100644 include/sudoinstallkf6.tex diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3464795 --- /dev/null +++ b/.gitignore @@ -0,0 +1,18 @@ +Covers +*bklt* +*.aux +*.log +*.out +*.synctex.gz +*.toc +*.dvi +*.odt +metric* +*.mx1 +*.abc +*.bak +*wc* +*drafts* +/build/* +*/build/* +*/spoken/* diff --git a/git-primer.tex b/git-primer.tex new file mode 100644 index 0000000..fc14d6b --- /dev/null +++ b/git-primer.tex @@ -0,0 +1,377 @@ +\documentclass[twoside]{article} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{makeidx} +\usepackage{graphicx} +%\usepackage[nott]{kpfonts} +\usepackage{fourier} +\usepackage{float} +\raggedbottom +\usepackage{array} +\usepackage{multirow} +\usepackage{gensymb} % Just for the degree symbol +\usepackage{ccicons} % Creative Commons icons; now we can delete an image +\usepackage{lettrine} % Drop caps +\usepackage{wrapfig} % Let's wrap some images +\usepackage{hanging} % For hanging indents in a script +\usepackage{fancyvrb} % Use line numbers with code samples +\usepackage{fvextra} % Break lines inside Verbatim environment: +\usepackage{enumitem} % Control spacing in lists +\usepackage{setspace} % Better control over line-spacing +\usepackage{nicefrac} % Use nice fractions +\usepackage[bottom]{footmisc} % Keep the footnotes at the bottom of the page +\usepackage{tabto} % Use tab stops when we need to (especially in footnotes) +\usepackage{microtype} % Make things neater. Thanks /u/-LeopardShark- +\usepackage{tabularray} % Easy tables +\usepackage[]{FiraSans} % sans-serif font; https://tug.org/FontCatalogue/firasansregular +\usepackage[]{footmisc} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\graphicspath{{images/}} % Where are our images? +\usepackage{multicol} % Include two- or three-column sections +%\counterwithout{footnote}{chapter} % Stop resetting the footnote count after each chapter +\NumTabs{18} % Define 18 tab stops (at 1/4" intervals) [tabto package] +\raggedbottom % Don't force text to fill page +\setlength{\belowcaptionskip}{4pt} % Adjust space between caption and figure +\renewcommand*\contentsname{In This Issue…} % Change the name of the TOC + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Document Setup%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\usepackage{geometry} +%\geometry{ +% paperheight=8.5in, +% paperwidth=5.5in, +% heightrounded, +% margin=0.5in +%} + +%\addtolength{\topmargin}{0.4in} % Adjust and bottom margin +%\addtolength{\textheight}{-0.75in} % Adjust the bottom margin + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Page Headers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage{fancyhdr} +\pagestyle{fancy} + \fancyhf{} + \fancyhead[LE,RO]{A Git Primer} + \fancyhead[RE,LO]{Part 1} + \cfoot{Page \thepage} +\renewcommand{\footrulewidth}{0.5pt} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Chapter Title Spacing %%%%%%%%%%%%%%%%%%%% +\usepackage{titlesec} +\titleformat{\chapter}[display] + {\normalfont\huge\bfseries} + {\chaptertitlename\ \thechapter} + {20pt} + {\Huge} +\titlespacing*{\chapter}{0pt}{0pt}{40pt} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Custom Macros %%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Make a nice border and box for the tops of our examples +\newcommand\klab[3]{\vspace{#1}\noindent{}\hrulefill\fbox{\texttt{~#2~}}\hrulefill\vspace{#3}} + +% Add an \hrule with space above and below +\newcommand\krule[2]{\vspace{#1}\hrule\vspace{#2}} + +% Make hrefs easier (must load package hyperref} +\newcommand\kref[2]{\href{#1}{{\texttt{#2}}}} + +% Rotate text in tables easier +% https://tex.stackexchange.com/questions/89115/how-to-rotate-text-in-multirow-table +\newcommand\krot[3]{\parbox[t]{#1}{\multirow{#2}{*}{\rotatebox[origin=c]{90}{#3}}}} + +% Make diversions easier (and uniform!) +\newcommand\kdivb[2]{ + \medskip + \hrule + \medskip + \noindent{}\textbf{#1} + \vspace{#2mm} + \begin{multicols}{2} +} + +\newcommand\kdive[1]{ + \end{multicols} + \vspace{#1mm} + \hrule + \medskip +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Include URLS %%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Be sure to load this package last +% [hidelinks option to hide big red box. Thanks /u/0b0101011001001011 +\usepackage[hidelinks]{hyperref} % Inlcude URLs, but load this package last + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Document Information %%%%%%%%%%%%%%%%%%%%% +\author{Kenneth John Odle} +\title{A Git Primer} +\date{\begin{small}\today{}\end{small}} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Let's get it started %%%%%%%%%%%%%%%%%%%%% + +\begin{document} +\maketitle + +\section*{Impressum} +All contents \copyright2024 Kenneth John Odle + + + +\tableofcontents + +\newpage + +Git is version control software. That is, it allows you to record and track changes to a set of files over time. You can then compare different revisions or even revert some files or the entire project back to a previous version. + +What I'm going to do here is describe how I understand Git. I am far from a power-user or expert in Git, so I may get some things wrong. This is \textit{not} intended to be comprehensive, but more just a way for you to get your feet wet. My goal is to encourage you to think about how you might benefit from using Git. + +\section{What Git Can Do For You} + +Git is great if you are a software developer, because as you work you make a \textit{lot} of changes to your code. It's also great if you are a writer, because you can experiment as much as you want and not have to worry about losing or overwriting something. You can just revert to an earlier version, or \textit{branch} in order to experiment. But more about that later. + +Git works best with text-based files—basically, anything that has a \texttt{.txt}, \texttt{.html}, \texttt{.css}, \texttt{.php}, etc. extension will work. There's no reason that you can't add binaries, such as images, pdfs, Microsoft Word files, or LibreOffice files. (I'm writing this zine in \LaTeX{}, and do include a few images in most issues, for example.) The issue is that because they are binaries, Git won't be able to tell you the difference between versions. (I would add, though, that if you are writing, you really should separate out the content and the styling from the beginning, so that you can focus on the story you want to tell. Plain text files are your friends.) + +\section{Git Concepts} + +If this is your first exposure to version control software you'll make faster progress if you understand some of the basic concepts. If you are coming to Git from a different version control software, then some or all of these concepts will be familiar to you, although they will probably have different names and probably different functions. Keep in mind that all of these technologies work differently, so you may have to retrain your brain to follow a different workflow. + +\paragraph{Concept One: Git exists in both time and space.} This is true of just about all version control software, or at least all the different types I am aware of. + +\paragraph{Concept Two: The basic time unit of Git is a \textit{commit}.} A commit is simply a snapshot of where your project stands at any given moment. When you make a commit, it's like taking a picture of your project at that particular moment. + +\paragraph{Concept Three: The basic space unit of Git is a \textit{repository}.} All those commmits have to live somewhere, and a repository is just a place where all those commits exist. Repositories (or ``repos'' for short) can be \textit{local}—that is, they exist on your computer only—or they can be \textit{remote}—meaning that can live on other computers somewhere else. That ``somewhere else'' is usually a publicly available server. You can create your own\footnote{You can see mine at \kref{https://git.kjodle.net/}{https://git.kjodle.net/} for example.} or you can get an account at someplace like Gitlab\footnote{\kref{https://gitlab.com/}{https://gitlab.com/}} which is for-profit and wants your money, or Github\footnote{\kref{https://github.com/}{https://github.com/}} which is now owned by Microsoft and wants your soul. + +You can work with a local repository only, or you can decide to work with one or more remote repositories. The choice is up to you. + +\paragraph{Concept Four: Repositories are multi-dimensional.} If you make a series of commits to a repository, it will be linear in nature. This is perfectly ordinary. But you may get to a point where you want to experiment with something and you're not sure whether you'll like the new version or the old version better. Rather than commit that new version, which overrides the original version, you can \textit{branch} and have both versions existing at the same time. A branch is basically a copy of a repository at this point in time (i.e., from the last commit). You can then switch between branches and test things out. You can treat it like a sandbox—but more about that later. + +\section{Git Clients} + +Git is a command line based technology. Yes, there are GUIs out there for Git, and if you are on Windows or macOS, you may find them useful. You can see a fairly comprehensive list at \kref{https://git-scm.com/book/en/v2/Getting-Started-Installing-Git}{https://git-scm.com/book/en/v2/G\\etting-Started-Installing-Git}. + +In general, I advise against using any type of GUI with Git. For one thing, Git is fairly easy to manage from the command line, so using a GUI just adds a level of abstraction that we don't really need. For another, the command line is forever, but GUIs come and go. If your GUI gets to a point where it's development is discontinued, or it decides to adopt a subscription model that you can't afford, you're screwed. + +A GUI can also obscure what Git is actually doing, meaning that you might end up with less understanding of Git than you would by working on the command line. + +\section{Local Repositories} + +Let's start with local repositories. Assuming you have a folder full of files you want to track using Git, open a terminal window in that location (which is now called your ``working directory'') and type \texttt{git init}. Congratulations! You now have a local Git repo! + +What has happened is that Git has created an invisible directory (\texttt{.git}) that it will use to store the metadata and database for your project. Do \textbf{not} delete this folder! + +Technically, the \texttt{.git} directory is the actual repository. But most people think of the folder that contains your working files along with the \texttt{.git} directory as a repo. As far as I can tell, it doesn't really matter. Just be aware that a) this distinction exists, and b) some people on the internet can be incredibly pedantic about it (sometimes with reason, and often without). + +We haven't made any commits yet, though. All we have are files in our working directory. To make a commit, we need to \textit{stage} our files by using the \texttt{git add} command. You can do this a couple of different ways: we can either list each file one by one (i.e., \texttt{git add file1.txt file2.txt}) or we can just add them all in a single go by using the \texttt{*} wildcard (\texttt{git add *} which will \textit{not} add invisible files, or \texttt{git add -A} which \textit{will} add invisible files). + +Now that you've added your files, they are considered to be \textit{staged}, which means that they are ready to commit. You can make a commit now, or you can modify or create new files, and then add them as well. The choice is yours—Git doesn't penalize you either way. Personally, I prefer to make many smaller commits to avoid losing data (and metadata). + +If you're happy with the files you've staged, we can now commit them by using \texttt{git commit -m ""}. Note that you have to add a commit message. This can be anything you like, but it helps to make it something that will be useful down the road like ``updated chapter three''. You'll get some miscellaneous messages about what Git is doing and then it is done. You've created your first commit, and all of your staged files are now \texttt{committed}.\footnote{You can also make this process even more efficient by creating some bash alias for the various Git commands. See ``More Fun with bash'' in issue \#4.} + +\section{Branches} + +If you want to experiment, the best way to do that is to create a \textit{branch}. To do that, just use \texttt{git branch }. To move to that branch, you check it out\footnote{For a visual depiction, see, \kref{https://www.youtube.com/watch?v=8qxDBiiVjlQ}{https://www.youtube.com/watch?v=8qxDBiiVjlQ}.} using \texttt{git branch checkout }. + +Of course, there's a shortcut to this. You can use + +\input{include/checkout} + +\noindent{}which creates a branch called ``branchname'' and moves you to it automatically. + +This is the point where you can experiment and have fun on this branch without worrying about messing up your main branch. Wouldn't it be nice if life were like this?\footnote{Gosh, I've mentioned this twice. There are lots of science fiction stories about this possibility. I guess it's time to go read one. Or write one.} If you like the changes that you made on this branch, you can then go back to your main branch (\texttt{git checkout main}) and \textit{merge} those changes. + +\input{include/merge} + +It's always a good idea to clean up after ourselves. If we don't need that experimental branch any more, we can delete it with \texttt{git branch -d }. + +In reality, things are rarely going to be this simple, unless you are only making very basic changes to a branch. You'll likely get all sorts of error messages or warning messages, and will get confused or even scared. Never fear! The nice thing about Git is that most of the solutions you need are easily found at the other end of a web search. + +\section{Remote Repositories} + +Remote repositories make it possible to share your work and to collaborate with others. You can do all sorts of things locally, but at some point, you're probably going to want to put your work out there, or just to show off. + +\subsection{Getting a Remote Repository} + +If you set up a remote repo on some place like GitHub, or you find a repo somewhere that you would like to work with on your own, you can \textit{clone} that remote repo like this: + +\input{include/clone} + +For example, if you wanted to get a copy of the Apollo 11 Guidance Computer source code because you happen to be planning a trip to the moon of your own,\footnote{I was delighted to find out that this was available on GitHub. I first learned about this in the Volume Thirty-Eight, Number Four issue of \textit{2600} in an article called ``Supply and Demand, Apollo 11, and GitHub'', which is something I will probably talk about in the future.} you would just type \texttt{git clone https://github.com/chrisl\\garry/Apollo-11}. Git would create a directory called ``Apollo-11'' and clone a local version of that entire repository into it. + +If you want to see the remotes attached to this repo, you can just type \texttt{git remote -v}. In this case, it would show you something like this: + +\begin{Verbatim}[] +origin https://github.com/chrislgarry/Apollo-11 (fetch) +origin https://github.com/chrislgarry/Apollo-11 (push) +\end{Verbatim} + +Of course, those remote repositories don't belong to you, so you can't push any changes you make to them. What you can do is create your own remote repo on a Git-hosting system. I'll do that on my Git site at \kref{https://git.kjodle.net/kjodle/Apollo-11}{https://git.kjodle.net/kjodle/Apollo-11}. To add that remote to my local repo, I will use this: + +\input{include/remoteadd} + +And running the \texttt{git remote -v} command again shows that I have two different remotes: + +\begin{Verbatim}[] +ogit https://git.kjodle.net/kjodle/Apollo-11 (fetch) +ogit https://git.kjodle.net/kjodle/Apollo-11 (push) +origin https://github.com/chrislgarry/Apollo-11 (fetch) +origin https://github.com/chrislgarry/Apollo-11 (push) +\end{Verbatim} + +I named my remote ``ogit'', which is the first letter of my last name combined with ``git''. I need to get rid of those remotes on GitHub, since I can't push any changes to them anyway. To do that I'll use this command: + +\input{include/remoteremove} + +Running \texttt{git remote -v} again shows that I now just have the remote on my own website: + +\begin{Verbatim}[] +ogit https://git.kjodle.net/kjodle/Apollo-11 (fetch) +ogit https://git.kjodle.net/kjodle/Apollo-11 (push) +\end{Verbatim} + +Are we ready to upload this code from my local repository to my remote repo? Not yet. Let's see what our local branches are by running \texttt{git branch}, which gives us this: + +\begin{Verbatim}[] +* master +\end{Verbatim} + +In this case, I only have a single branch, which is named ``master''. It also has an asterisk because it's the current branch. The problem here is that my Git website always names branches ``main''. So I need to change that branch name by running + +\input{include/branchrename} + +Running \texttt{git branch} again confirms that our branch has been renamed: + +\begin{Verbatim}[] +* main +\end{Verbatim} + +\subsection{Pushing Changes to a Remote Repository} + +Okay, I have a local repository, I have a remote repository attached to that local repository, and the current branch on both repos have the same name. It's time to move that code from the local repository to the remote one. For that I'll use \texttt{git push} . Since the remote is named ``ogit'' and the branch is named ``main'', the full command looks like this: + +\input{include/push} + +I did that, and Git thought for a moment, and produced this output: + +\begin{Verbatim}[breaklines=true] +Enumerating objects: 3414, done. +Counting objects: 100% (3414/3414), done. +Delta compression using up to 4 threads +Compressing objects: 100% (1077/1077), done. +Writing objects: 100% (3414/3414), 3.01 MiB | 1.69 MiB/s, done. +Total 3414 (delta 2327), reused 3414 (delta 2327), pack-reused 0 +remote: . Processing 1 references +remote: Processed 1 references in total +To https://git.kjodle.net/kjodle/Apollo-11 + * [new branch] main -> main +\end{Verbatim} + +That really did take only about 1 second to push 3.1 MiB\footnote{That's not a typo. MiB stands for a \texttt{mebibyte}. See ``The Later Salad Days'' in issue \#2 for more information.} of data. One of the nice things about Git is that it is remarkably fast. + +If you visit that original repository that I cloned on GitHub, you'll see that it has 547 commits. If you then visit the repository I created at \kref{https://git.kjodle.net/kjodle/Apollo-11}{https://git.kjodle.net/kjodle/Apollo-11}, you'll see that it also has 547 commits. This is one of the nice things about Git: when you clone that remote repository, you are getting \textit{everything} associated with that repo. Other version control applications just checkout the most recent version. Hence the term ``clone'' rather than ``checkout''. + +For what it's worth, you can have multiple remotes. I can create a remote repository on GitHub, clone it to my local machine, then create a remote somewhere else and add that remote to my local repo. To keep both remotes up to date with local changes, you'll need to push twice, once with \texttt{git push remote1 main} and again with \texttt{git push remote2 main}. + +There is a lot more to it than this (I haven't even talked about \texttt{git status} yet!), so I guess I will leave that for part 2 of this primer. + +\subsection{Collaborating With Yourself} + +I mentioned earlier that you could use Git if you're a writer to keep track of changes to projects, provided you were willing to work with text files. My goal here is to provide at least one workflow for doing that. I'm going to assume a few things: + +\begin{enumerate}[noitemsep] +\item You have a remote somewhere on a repository host (like GitHub or your own website). +\item You write all your stories in plain text files in a local repo. +\item Your repository host allows you to edit files on their website. (I can do this on my own site with Gitea\footnote{\kref{https://gitea.com/}{https://gitea.com/}} but I'm not sure about other sites. +\end{enumerate} + +The advantage to the workflow I'm describing here is that you can work on your files even if you are not working from your normal machine. Thanks to family medical issues, I sometimes spend a lot of time in hospital waiting rooms and I bring my Chromebook with me. I can edit my files on the web, and then pull down changes to my main laptop (which never leaves my house) when I get home. This is how I do it. + +I'll physically go to wherever we are for the day (library, caf\'e, hospital waiting room, etc.) and login to my repository host. I can edit files online using this button: + +\begin{center} +\noindent{}\frame{\includegraphics[scale=0.75]{gitea-online-edit}} +\end{center} + +At the end of the day, I'll home and go into my local repo, open a terminal in that directory and use the \texttt{git pull} command: + +\input{include/pull} + +What does \texttt{git pull} do? It's a combination of two Git commands: \texttt{fetch} and \texttt{merge}. + +\texttt{git fetch} gets the change history of the tracked remote and branch, whereas \texttt{git merge} combines the current branch with the specified branch. My local repository will now look like My remote repository. I can write to my heart's content, push those changes, and call it a day. If I'm back at the hospital waiting room again some time later, I can just repeat the process.\footnote{Again, for a visual depiction of this, please visit \kref{https://www.youtube.com/watch?v=FG1NrQYXjLU}{https://www.youtube.com/watch?v=\\FG1NrQYXjLU}.} + +\section{Extra Files} + +If you pull or clone a remote repository, you may notice files like \texttt{.gitignore} and \texttt{README.md}. The first tells Git which files to \textit{not} track. (And yes, you will want to make use of this at some point.) The second is a text document written in Markdown (hence the \texttt{.md} file extension) which appears on the front page of the online repo. + +\section{Forks and Pull Requests} + +These things aren't a part of Git, but they are something that is offered by GitHub and other repository hosts, so I just want to give the briefest of descriptions here for clarity and completion. + +To \textit{fork} a remote repository is to make a copy of it so that you can contribute to this project. You fork somebody else's project, clone it locally, make your changes, push those changes to your remote repo, and then make a \textit{pull request}, which alerts the owner of the original repository that you have changes you'd like them to incorporate into their project. They can then pull those changes in, or they can ignore them. + +\section{Summary of Git Commands} + +One of my favorite aspects of Git is that it's fairly intuitive to understand and start using right out of the box, but it's also robust enough to meet the needs of large teams and organizations. What I've done in the following table is to summarize the commands I've used in this primer, along with examples where appropriate. + +\begin{longtblr} +[ + caption = {Summary of Git Commands}, + label = {tb:gitcommsum}, +% theme = {custom1} +]{ + width = {\textwidth}, + colspec = { X[20,l] X[80,l] }, + hlines = {0.5pt,solid}, + vline{1,3} = {0.5pt,solid}, + rows = {5mm, m, rowsep=1.5pt}, + rowhead = 1, + cells = {font=\sffamily\fontsize{8pt}{11pt}\selectfont}, + row{1} = {font=\bfseries}, +} +Command & Purpose {\& Example, if applicable} \\ +\texttt{git init} & {Creates a local git repository \\ \texttt{git init} } \\ +\texttt{git clone} & {Clones a remote repository locally \\ \texttt{git clone} } \\ +\texttt{git -{}-version} & Displays the version of git installed on your system \\ +\texttt{git add} & {Stages (i.e., adds) files to a commit \\ \texttt{git add file1 file2} } \\ +\texttt{git add *} & Stages (i.e., adds) all visible files to a commit \\ +{\texttt{git add -A} \\ \texttt{git add --all}} & Stages (i.e., adds) all files (including invisible ones) to a commit \\ +\texttt{git branch} & Show all branches (the current branch is labeled with an asterisk) \\ +\texttt{git branch -{}-show-current} & Show only the current branch \\ +\texttt{git commit} & {Commits stages files \\ \texttt{git commit -m} ``'' } \\ +\texttt{git fetch} & Get the change history of a specific tracked remote and branch \\ +\texttt{git merge} & Incorporate changes from the named commits into the current branch \\ +\texttt{git pull} & A combination of \texttt{fetch} and \texttt{merge} \\ +\texttt{git push} & {Pushes a commit from a local repo to a remote repo \\ \texttt{git push} } \\ +\texttt{git remote} & {Show only the names of remote repos \\ \texttt{git remote} } \\ +\texttt{git remote -v} & {Show both the names and URLs of remote repos \\ \texttt{git remote -v} } \\ +\texttt{git status} & Show which files have been staged and which files are waiting to be staged \\ +\texttt{git status -s} & As above, but in short form \\ +\texttt{git status -u} & As above, but only show untracked files \\ +\end{longtblr} + + + + + +\end{document} diff --git a/images/gitea-online-edit.png b/images/gitea-online-edit.png new file mode 100644 index 0000000000000000000000000000000000000000..2f86a95e359bd1dff0d8d6d13580358d8c5f47ea GIT binary patch literal 11116 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 +\end{Verbatim} diff --git a/include/clone.tex b/include/clone.tex new file mode 100644 index 0000000..92930b8 --- /dev/null +++ b/include/clone.tex @@ -0,0 +1,3 @@ +\begin{Verbatim}[] +$ git clone +\end{Verbatim} diff --git a/include/debgitinstall.tex b/include/debgitinstall.tex new file mode 100644 index 0000000..ddf06e0 --- /dev/null +++ b/include/debgitinstall.tex @@ -0,0 +1,3 @@ +\begin{Verbatim}[] +$ sudo apt install git-all +\end{Verbatim} \ No newline at end of file diff --git a/include/fedgitinstall.tex b/include/fedgitinstall.tex new file mode 100644 index 0000000..7f609f9 --- /dev/null +++ b/include/fedgitinstall.tex @@ -0,0 +1,3 @@ +\begin{Verbatim}[] +$ sudo dnf install git-all +\end{Verbatim} \ No newline at end of file diff --git a/include/installmeld.tex b/include/installmeld.tex new file mode 100644 index 0000000..25a0827 --- /dev/null +++ b/include/installmeld.tex @@ -0,0 +1,3 @@ +\begin{Verbatim}[] +$ apt install meld --dry-run +\end{Verbatim} diff --git a/include/merge.tex b/include/merge.tex new file mode 100644 index 0000000..a6a6a90 --- /dev/null +++ b/include/merge.tex @@ -0,0 +1,3 @@ +\begin{Verbatim}[] +$ git merge +\end{Verbatim} diff --git a/include/pull.tex b/include/pull.tex new file mode 100644 index 0000000..9bf7e0d --- /dev/null +++ b/include/pull.tex @@ -0,0 +1,3 @@ +\begin{Verbatim}[] +$ git pull +\end{Verbatim} diff --git a/include/push.tex b/include/push.tex new file mode 100644 index 0000000..3e36e0c --- /dev/null +++ b/include/push.tex @@ -0,0 +1,3 @@ +\begin{Verbatim}[] +$ git push ogit main +\end{Verbatim} diff --git a/include/remoteadd.tex b/include/remoteadd.tex new file mode 100644 index 0000000..cfaed43 --- /dev/null +++ b/include/remoteadd.tex @@ -0,0 +1,3 @@ +\begin{Verbatim}[] +$ git remote add ogit https://git.kjodle.net/kjodle/Apollo-11 +\end{Verbatim} diff --git a/include/remoteremove.tex b/include/remoteremove.tex new file mode 100644 index 0000000..554393a --- /dev/null +++ b/include/remoteremove.tex @@ -0,0 +1,3 @@ +\begin{Verbatim}[] +$ git remote remove origin +\end{Verbatim} diff --git a/include/snapinstallokular.tex b/include/snapinstallokular.tex new file mode 100644 index 0000000..c73d892 --- /dev/null +++ b/include/snapinstallokular.tex @@ -0,0 +1,3 @@ +\begin{Verbatim}[] +$ sudo snap install okular +\end{Verbatim} diff --git a/include/snaprefresh.tex b/include/snaprefresh.tex new file mode 100644 index 0000000..df8fbab --- /dev/null +++ b/include/snaprefresh.tex @@ -0,0 +1,3 @@ +\begin{Verbatim}[] +$ snap refresh +\end{Verbatim} diff --git a/include/sudofindsnap.tex b/include/sudofindsnap.tex new file mode 100644 index 0000000..1e7cf1a --- /dev/null +++ b/include/sudofindsnap.tex @@ -0,0 +1,3 @@ +\begin{Verbatim}[] +$ sudo find /snap -name libKF6Parts.so.6 +\end{Verbatim} diff --git a/include/sudoinstallkf6.tex b/include/sudoinstallkf6.tex new file mode 100644 index 0000000..1d9ceb3 --- /dev/null +++ b/include/sudoinstallkf6.tex @@ -0,0 +1,3 @@ +\begin{Verbatim}[] +$ snap install kf6-core22 +\end{Verbatim}