web-dev-qa-db-ja.com

SSHプロトコル経由でGithub Gistをクローンする方法は?

Githubは実際にHTTPSプロトコルを使用してGistsを使用することを望んでいるようです。たとえば、GistページにHTTPS URLのみをリストします。 https://Gist.github.com/donatello/5834862

SSHプロトコルを使用してGistのクローンを作成することはできますか?

58
donatello

はい、可能です:

git clone [email protected]:5834862.git

もちろん、独自のGist IDに置き換えるだけです。

87
donatello

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

git @ .....はsshプロトコルです

gistのクローンURLをコピーすると、httpsクローンURLが表示されます

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

変化する https://からgit@および/****.gitから:****.git

この場合

git clone [email protected]:5834862.git

15
xero

Gistページのドロップダウンに、埋め込み/共有/クローンHTTPS /クローンSSHオプションが追加されました。
Gist dropdown
これは非自明なトリックを示していますユーザー名の省略

  • HTTPSのクローン:
    https://Gist.github.com/b6f4a53fac485f75afb9150d03efb2f6.git
    .gitの有無にかかわらず、ユーザー名:https://Gist.github.com/cben/b6f4a53fac485f75afb9150d03efb2f6の有無に関係なく動作します(githubでは通常どおり、正規のブラウジングURLはgitでも機能します)

  • SSHのクローン:
    [email protected]:b6f4a53fac485f75afb9150d03efb2f6.git
    AKA
    ssh://[email protected]/b6f4a53fac485f75afb9150d03efb2f6.git
    .gitの有無にかかわらず動作しますが、ユーザー名では動作しません。


HTTPSが苦痛になるgithub 2FAを有効にしたので、常にSSHが必要です。次の~/.gitconfigは、Pushのすべての要点を翻訳します。

[url "ssh://[email protected]/"]
    # 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/

そして、定期的な(非Gist)リポジトリの場合:

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

追伸insteadOfおよびpushInsteadOf構成をデバッグする便利な簡単な方法はgit remote -vを実行し、fetch/Pushが使用する有効なURLを示します。

必要に応じて、 this スクリプトを取得し、$PATHのどこかに配置できます。それが完了すると、次のことができます。

  1. HTTPSを使用してGist.github.comからGistを複製します(または既に複製されたGistがある場合は、次の手順に進みます)
  2. Gistのgitディレクトリツリーの任意の場所で、コマンドを実行します
git-change-url --to-ssh

ここで、公開鍵がgithubアカウントにアップロードされている場合( here をリストする必要があります)、Gitを入力することなく、SSHを介してGistを操作できるはずです。資格情報。

Git configファイルを手動で編集するよりもエラーが発生しにくい。

Ps:スクリプトにバグを見つけたり、追加する必要がある場合は、お気軽にフォークしてください:D

2
Sankalp

それが機能するためには、パスからユーザー名を削除し、ハッシュ/数字のみを残さなければなりません。

1
cnst

変化する https://からssh://git@トリックを実行する必要があります、つまり、変更

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

ssh://[email protected]/donatello/5834862

そう git clone ssh://[email protected]/...プロジェクトを複製する必要があります(Githubに既にSSHキーを追加している場合)

私個人の意見では、 公式文書 はSSHについて不明確です。

1
shintaroid

可能です、これを試してください:

git clone git@YOURSSHHOST:YOURGISTIDHERE.git
0
One Mad Geek