top right user icon→settings→ssh and GPG keys → new ssh keyThis is an old revision of the document!
Github (source forge) is not git (local-first distributed source control management software)! See Git for using git.
See Zenodo DOI for creating a DOI for your code hosted on Github.com.
Github setup includes
git@github.com:group/repo ( instead of https://github.com/group/repo')
* avoid conflicting histories: dont generate a readme when creating a new repo
- syncing that with your files (on your computer, on rhea, on PSC, etc)
* be sure you cd to the right directory before running git commands
- authenticating with github for git push permissions. See connecting-to-github-with-ssh
* ssh keys recommended
* ssh-keygen only once per user@server. don't run if existing ~/.ssh/id*.pub
===== New Repo =====
If you have an existing directory you want to put on github, DO NOT generate a readme when creating the github repository.
*
http://github.com/new or Home > green new repo
*
Follow form to assign a name. only add readme, lic, etc if no project files exist locally yet
*
Follow the instructions github provides be sure to cd into the code directory before running git commands <code bash add_remote.bash>
cd my-exsiting-data/ # go to the directory of your existing code
git remote add origin git@github.com:$USER/$REPONAME
git push -u origin main</code>
===== Existing Repo =====
* Copy the ssh url of your new repository. Green
<> Code button > Local Tab > SSH header.
* Clone the copied url like <code bash>git clone git@github.com/$USER/$REPO</code>
===== Authentication =====
Find github instructions on connecting-to-github-with-ssh.
For git push to github, you'll need some way to confirm your credentials. Authentication can happen with ssh keys (recommended) or an app password
when using ssh keys (recommended) use git@github.com:group/repo (repo url) to use ssh-key based authentication – on the terminal you can
switch from https to ssh using vim .git/config.
==== ssh keys ====
git push can use ssh authentication unique to a user and computer pair. You need a key likely in ~/.ssh/id_ed25519.pub.
Contents of ~/.ssh/id_ed25519.pub should be pasted into new ssh key modal on https://github.com/settings/keys 1)
<code bash>
cat ~/.ssh/id_ed25519.pub
</code>
If ~/.ssh/id_ed25519.pub doesn't exist, ssh-keygen can make it (use empty password for convenience. hit enter at password prompt to leave blank). See more documentaiton on github
ssh-keygen only needs to be run once per user per computer. Do not rerun if any ~/.ssh/id*.pub file exists – you risk deleting your key
==== https app pass ====
To push to
https (vs ssh like git@'') repos, you'll need to use a personal authentication token when prompted for a password. See github's documentation
top right user icon→settings→ssh and GPG keys → new ssh key