development

SSH 프로토콜을 통해 Github Gist를 복제하는 방법은 무엇입니까?

big-blog 2020. 12. 11. 19:09
반응형

SSH 프로토콜을 통해 Github Gist를 복제하는 방법은 무엇입니까?


Github는 실제로 Gist를 사용하기 위해 HTTPS 프로토콜을 사용하기를 원하는 것 같습니다. 예를 들어 Gist 페이지에 HTTPS URL 만 나열합니다 (예 : https://gist.github.com/donatello/5834862).

SSH 프로토콜을 사용하여 Gist를 복제 할 수 있습니까?


예, 가능합니다 :

git clone git@github.com:5834862.git

물론 자신의 Gist ID로 바꾸십시오.


https://help.github.com/articles/which-remote-url-should-i-use#ssh-readwrite---gitgithubspanspancom

git @ .....은 ssh 프로토콜입니다.

요점에 대한 복제 URL을 복사하면 https 복제 URL이 표시됩니다.

https://gist.github.com/5834862.git

변경 https://git@/****.git:****.git

그래서이 경우에는

git clone git@gist.github.com:5834862.git


요점 페이지의 드롭 다운에는 이제 Embed / Share / Clone HTTPS / Clone SSH 옵션이 있습니다.
요점 드롭 다운
이것은 명백하지 않은 트릭이 사용자 이름을 생략하고 있음을 보여줍니다 .

  • HTTPS 복제 : 사용자 이름 유무에
    https://gist.github.com/b6f4a53fac485f75afb9150d03efb2f6.git
    관계없이 나를 위해 작동합니다 .git. https://gist.github.com/cben/b6f4a53fac485f75afb9150d03efb2f6(일반적으로 github에서와 같이 표준 브라우징 URL은 git에서도 작동합니다)

  • SSH 복제 :
    git@gist.github.com:b6f4a53fac485f75afb9150d03efb2f6.git
    AKA는를 사용하거나 사용하지 않고 나를 위해 작동 하지만 사용자 이름으로는 작동하지 않습니다.
    ssh://git@gist.github.com/b6f4a53fac485f75afb9150d03efb2f6.git
    .git


HTTPS를 괴롭히는 github 2FA를 활성화했기 때문에 항상 SSH를 원합니다. 다음 ~/.gitconfig은 푸시의 모든 요점에 대한 번역을 수행합니다.

[url "ssh://git@gist.github.com/"]
    # In case I just copy-pasted with username:
    # [only works for my (cben) gists, but those are the ones I can push]
    pushInsteadOf = https://gist.github.com/cben/
    # For gists cloned with official no-username URL:
    pushInsteadOf = https://gist.github.com/

일반 (요지가 아닌) 저장소의 경우 :

[url "ssh://git@github.com/"]
    pushInsteadOf = https://github.com/
[url "ssh://git@bitbucket.org/"]
    pushInsteadOf = https://bitbucket.org/
[url "ssh://git@gitlab.com/"]
    pushInsteadOf = https://gitlab.com/

PS는 디버그 insteadOfpushInsteadOf구성에 대한 편리한 쉬운 방법 이 실행 git remote -v되며 가져 오기 / 푸시가 사용할 효과적인 URL을 보여줍니다.


원하는 경우이 스크립트를 가져 와서 $PATH. 완료되면 다음을 수행 할 수 있습니다.

  1. Clone any gist from gist.github.com using HTTPS (or if you have an already cloned gist, just proceed to the next step)
  2. Anywhere in the gist's git directory tree, run the command
git-change-url --to-ssh

Now, provided that your public key is uploaded to your github account (it should be listed here) you should be able to work with the gist via SSH, without having to enter your github credentials.

Much less error-prone than editing git config files by hand.

Ps: If you find any bugs in the script, or have any additions to make, feel free to fork :D


Change https:// to ssh://git@ should do the trick, that is, change

https://gist.github.com/donatello/5834862

to

ssh://git@gist.github.com/donatello/5834862

so git clone ssh://git@gist.github.com/... should clone the project (if you have already added SSH key on Github)

In my personal opinion, the official document is unclear about SSH.


작동하려면 해시 / 숫자 만 남겨두고 경로에서 사용자 이름을 제거해야합니다.


가능합니다, 이것을 시도하십시오 :

git clone git@YOURSSHHOST:YOURGISTIDHERE.git

참고 URL : https://stackoverflow.com/questions/18019142/how-to-clone-a-github-gist-via-ssh-protocol

반응형