Github git: Difference between revisions

From wikinotes
No edit summary
Line 17: Line 17:
</source>
</source>
</blockquote><!-- Push/Pull with ssh key -->
</blockquote><!-- Push/Pull with ssh key -->
== Deploy Keys ==
<blockquote>
you can generate keys to provide read-only, or read-write access to a repo.
<source lang="bash">
ssh-keygen -t ed25519  # a strong key
</source>
<source lang="yaml">
https://github.com/<you>/<repo>/settings/keys/new  # url to add new deploykey
</source>
next we'll create entries within our ssh config for the repo.
Create an `alias` for github.com, that will identify which deploykey you'll
be using here.
<source lang="ini">
Host <alias-for-your-repo>  github.com
    HostName github.com
    IdentityFile  /home/you/.ssh/deploykey
    User git
</source>
Finally, clone the git repository using your alias instead of github.com.
<source lang="bash">
git clone <alias-for-your-repo>:<you>/<repo>
</source>
{{ NOTE |
Your alias must be a word, not a full address. Some examples:
* git will not recognize <code>myrepo:/you/myrepo</code> as an alias
* your alias cannot resolve to your repo ex: <code>git clone {alias}</code> is not sufficient. You will need to use <code>git clone {alias}:you/repo</code>.
}}
</blockquote><!-- deploy keys -->
</blockquote><!-- SSH Keys -->
</blockquote><!-- SSH Keys -->



Revision as of 15:41, 19 September 2021

SSH Keys

Push/Pull with SSH key

You'll need to change the github URL you are using.

git clone https://github.com/<Username>/<Project>   # !!bad!!

git clone git@github.com:<Username>/<Project>       # good
git clone github.com:<username>/<project>           # also good (must specify user in ~/.ssh/config)

You can quickly test authentication

ssh git@github.com -i ~/.ssh/github

Deploy Keys

you can generate keys to provide read-only, or read-write access to a repo.

ssh-keygen -t ed25519   # a strong key
https://github.com/<you>/<repo>/settings/keys/new   # url to add new deploykey

next we'll create entries within our ssh config for the repo.

Create an `alias` for github.com, that will identify which deploykey you'll be using here.

Host <alias-for-your-repo>  github.com
    HostName github.com
    IdentityFile  /home/you/.ssh/deploykey
    User git


Finally, clone the git repository using your alias instead of github.com.

git clone <alias-for-your-repo>:<you>/<repo>

NOTE:

Your alias must be a word, not a full address. Some examples:

  • git will not recognize myrepo:/you/myrepo as an alias
  • your alias cannot resolve to your repo ex: git clone {alias} is not sufficient. You will need to use git clone {alias}:you/repo.

Workflows

Importing existing repo

See hosting a git http server to share with github.

You can then use that to import your project.

Download single file

curl -O wget https://raw.githubusercontent.com/user/project/branch/filename

Find PR from commit

git log --merges --ancestry-path --oneline 9c34e5f6af..master \
    | grep 'pull request' \
    | tail -n1 \
    | awk '{print $5}' \
    | cut -c2- \
    | xargs gh pr view -w

alternatively

git describe --all --contains <commit>  # returns branch name