This started as a message reply to @4dandl4 , and was redirected to a topic by @Abhishek on my request.
The original question was…“How to get software from Github?”
-
Simple case… download one file
You can do this in the browser.
Navigate to the github site
eg)
Unix/grub at main · nevillejackson/Unix · GitHub
If you wanted the filemakeusb.pdf
click on it
it will display, and there is a download button. -
General case… download a whole repository
Find out the name of the repository by browsing Github
eg)
The quickemu project is at
Quickemu Project · GitHub
It has 3 repositories… quickemu, quickgui, quickemu-icons
Say you want quickemu
click on the quickemu repository and get its address
GitHub - quickemu-project/quickemu: Quickly create and run optimised Windows, macOS and Linux desktop virtual machines.
You will see a whole structure of directories and files
In your computer you need to have git
installed
apt-get install git
and you need to give git some info
git config --global user.name "Neville Jackson" your name of course
git config --global user.email youremailaddress
git config --global core.editor vi
git config --global color.vi true
Then make a directory to download into, and cd into it
$ mkdir quickemu
nevj@trinity:/common
$ cd quickemu
nevj@trinity:/common/quickemu
Then initialize an empty git repository in your directory
nevj@trinity:/common/quickemu
$ git init
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
Initialized empty Git repository in /common/quickemu/.git/
nevj@trinity:/common/quickemu
Then issue a git pull command
nevj@trinity:/common/quickemu
$ git pull https://github.com/quickemu-project/quickemu
hint: Pulling without specifying how to reconcile divergent branches is
hint: discouraged. You can squelch this message by running one of the following
hint: commands sometime before your next pull:
hint:
hint: git config pull.rebase false # merge (the default strategy)
hint: git config pull.rebase true # rebase
hint: git config pull.ff only # fast-forward only
hint:
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
remote: Enumerating objects: 3475, done.
remote: Counting objects: 100% (1465/1465), done.
remote: Compressing objects: 100% (66/66), done.
remote: Total 3475 (delta 1430), reused 1424 (delta 1399), pack-reused 2010
Receiving objects: 100% (3475/3475), 1.30 MiB | 1.61 MiB/s, done.
Resolving deltas: 100% (2304/2304), done.
From https://github.com/quickemu-project/quickemu
* branch HEAD -> FETCH_HEAD
nevj@trinity:/common/quickemu
$
Thats all, it is downloaded.
nevj@trinity:/common/quickemu
$ ls
build-docs docs LICENSE macrecovery quickemu quickget README.md windowskey
nevj@trinity:/common/quickemu
$
You have a complete copy of the entire repo in a git controlled directory in your computer.
A git controlled directory is nothing special, it just contains a .git directory and a few other files
nevj@trinity:/common/quickemu
$ ls -a
. docs .github LICENSE quickget
.. .editorconfig .gitignore macrecovery README.md
build-docs .git .gitmodules quickemu windowskey
nevj@trinity:/common/quickemu
Dont be confused by my MX prompt
nevj@trinity:/common/quickemu
$
it takes 2 lines. Not the usual one line prompt.
There is more to git
than that. It is used to keep versions of files , for example while making changes in writing a program. It is used by the Linux kernel team. You can add file versions to git and it remembers them, so that you can roll back to any previous version of a file. No need to keep multiple copies of file versions.
As well as pull, you can push stuff into a remote repository … you have to own the repository to do that, you cant write on someone else’s repo,… but you can read anyone’s repo… that is the idea behind Gitub, it is FOSS unless you pay to make a private repo.
I think , if you agree , we might make this message a public topic.?