Tutoriel Linux

Linux上でキーやフォルダを間違えずにGitリポジトリをクローンする

Débutant2 min de lecture

git cloneは作業コピーを作成し、通常、リモートリポジトリをoriginという名前で追加します。罠は最初のコマンドの前にあります:SSH URLはあなたのキーを使い、HTTPS URLはしばしばトークンを要求し、ターゲットフォルダにはすでに有用なファイルが含まれていないことが必要です。インターネットから取得したスクリプトを実行する前に、これらの3つのポイントを確認するために2分間を取ってください。

TuxがGitリポジトリとSSHキーを持って、2つのLinuxクローンパスの前にいます
リポジトリをクローンする前に、URL、使用するキー、目的のフォルダを確認してください。

クローンする前にHTTPSまたはSSHを選択する

公共のプロジェクトを取得するか、このマシンでキーを設定したくない場合はHTTPSを使用してください。その後、GitHub、GitLab、またはあなたのフォージにプッシュするために、アカウントのパスワードは通常はもはや十分ではありません:サービスはパーソナルアクセストークンを要求します。

あなたの公開鍵がすでにあなたのフォージのアカウントに関連付けられている場合はSSHを使用してください。この方法ではトークンを再入力する必要がなくなりますが、間違った鍵が提示されたり、SSHエージェントがそれを読み込まなかったりすると失敗します。使用するアイデンティティを確認することから始めてください:

ssh -T [email protected]
ssh-add -l

最初のホストをあなたのフォージに適応させてください。リモートシェルなしでの認証応答は、多くのGitホスティングプロバイダーでは通常です。複数の鍵を管理している場合は、最初に~/.ssh/configファイルをチェックし、ssh -G [email protected]を使ってGitを非難する前に確認してください。複数のサーバー用のSSHの設定方法について説明しているガイドでは、エイリアスごとに鍵とアカウントを固定する方法を説明しています。

空で識別可能なフォルダにコピーを作成する

あなたのプロジェクト専用のディレクトリに移動してください。第2引数がなければ、Gitはリポジトリの名前からフォルダを作成します。明示的な名前を使うことで、テストコピーを変更が含まれるコピーと混同することを避けられます。

mkdir -p ~/projets
cd ~/projets
pwd
ls -la

git clone https://github.com/octocat/Hello-World.git hello-test
cd hello-test

内容がわからないフォルダでクローンを実行しないでください。一般的にGitは非空のディレクトリを拒否しますが、コマンドの前にpwdls -laを確認する方がより安全です。コードを読むだけのコピーの場合、HTTPSは最も簡単な選択肢のままです。

SSHを使うと、同じ操作は次のようになります:

git clone [email protected]:mon-compte/mon-projet.git mon-projet
cd mon-projet

ホスト、アカウント、リポジトリをあなたのフォージが表示した値に置き換えてください。不審なメッセージで受け取ったURLを決してコピーしないでください。まずはプロジェクトの公式ページを開き、所有者、リポジトリ名、クローンURLを比較してください。

何かを実行する前にリモートとファイルを確認する

クローン後は、リモート、アクティブなブランチ、ディレクトリのステータスを確認してください。これらのコマンドはプロジェクトを変更しません:

git remote -v
git branch --show-current
git status
git log -1 --oneline
find . -maxdepth 2 -type f -name 'README*' -o -name 'INSTALL*'

git remote -vは取得と変更の送信に使用されるURLを表示します。特に、プロジェクトにデプロイ設定が含まれている場合は、最初のgit pushの前にそれらを確認してください。その後はREADMEを読み、INSTALLファイル、依存関係、および起動スクリプトを確認してください。Gitリポジトリには、古いまたは非常に危険な有効なスクリプトが含まれている可能性があり、クローンが成功したからといってあなたの信頼を得るわけではありません。

後で更新を取得するには、クローンされたフォルダ内に留まり、最初に作業を確認してください:

git status
git fetch origin
git log --oneline HEAD..origin/$(git branch --show-current)
git pull --ff-only

git pull --ff-onlyは、ローカルのコミットとリモートリポジトリが異なる場合、自動マージを拒否します。あなたがまだブランチやリモートを確認していないのに変更を混ぜる更新よりは、これが好まれます。

git cloneの公式ドキュメント--depth--branch--recurse-submodulesのようなオプションの詳細を説明しています。これらは特定の必要に応じて取っておいてください。最初のクローンの場合、確認済みのURL、クリーンなフォルダ、READMEの読み込みは、すでにほとんどのエラーを避けます。

sudo apt update && sudo apt upgrade