Gitの初心者ガイド

Gitは素晴らしいプログラムです。これは、ファイルの編集履歴をシームレスに管理できるバージョン管理ユーティリティです。これはシンプルで印象的ではないように思えるかもしれませんが、Gitの強みは、この履歴をファイルやディレクトリのグループ全体に拡張できるという点にあります。
これは、Gitを使用して、すべてのディレクトリのすべてのファイルのすべての変更を追跡することが可能であることを意味します。これは、プロジェクトを行っている場合に、あなたが行っているすべてのことのローリングスナップショットを持ちたい場合に非常に便利です。
目次
- Gitとは?
- Gitのインストール
- ローカルプロジェクトのためのGitの使用
- オンラインプロジェクトのためのGitの使用
- よくある質問
また読む: ウェブサイトが正当で安全かどうかを判断する方法
Gitとは?
基本的に、Gitはシンプルな履歴追跡プログラムです。それは、ファイルの異なるバージョン間の変更を追跡します。動作の仕方は、ファイルを変更するたびに、Gitがその特定のファイルバージョンのハッシュを作成するというものです。
そこから、これらのハッシュをリポジトリの「Gitツリー」と比較・分析します。この方法で、Gitは複数のファイルバージョン間の違いだけを保存することができます。

例えば、Gitの下でスクリプトを書いていて、いくつかの変更を加えた場合、Gitは最初の2つの変更のハッシュだけを保存し、現在のファイルを最初の2つに対してハッシュ化します。これにより、Gitは同じファイルの複数のコピーを保存することなく、古いバージョンを再構築できます。

このアプローチにより、ファイルやディレクトリをより大きなプロジェクトに簡単にスケールさせることもできます。Gitはすべての履歴データをハッシュとして保存するため、ローカルマシンでのみ操作する必要があります。そのため、他の人に作業を簡単にエクスポートし、外部管理ソフトウェアなしで彼らの貢献をインポートできます。
Gitのインストール
GitはLinuxベースのオペレーティングシステムで非常に一般的なパッケージです。そのため、インストールは非常に簡単です。ほとんどの場合、システムにすでにプリインストールされています。DebianまたはUbuntuを使用している場合は、aptを使用してGitをインストールできます:
sudo apt install git
FedoraまたはRHELの場合は、dnfを使用します:
sudo dnf install git-all一方、Arch Linuxを使用している場合は、pacmanを使用してGitをインストールできます:
sudo pacman -S gitローカルプロジェクトのためのGitの使用
ローカルマシンでGitを使用するのは非常に簡単です。最初に行うべきことは、新しいGitリポジトリを作成することです。その主な目的は、このプロジェクトのために追加するすべてのGitオブジェクトのコンテナとして機能することです。
追跡したいフォルダで、次のコマンドを実行します:
cd my-project
git init
完了すると、Gitはプロジェクトディレクトリのルートに「.git」フォルダを作成します。これは、Gitプログラムのマーカーと、そのプロジェクトのすべてのGitオブジェクトのストレージフォルダの両方として機能します。
既存のファイルをリポジトリに追加する
作業中のGitリポジトリができたら、次に行うべきことは、既存のファイルをGitにインポートすることです。これは、Gitは新しいリポジトリを最初に作成したときにファイルを追跡しないためです。
そのためには、フォルダのルートディレクトリで次のコマンドを実行できます:
git add .このコマンドは、現在のディレクトリ内のすべてのファイルとフォルダをGitに含めるように指示します。その後、次のコマンドを実行して確認できます:
git diff --cached
また読む: Gitキャッシュをクリアする方法
最初のリポジトリをコミットする
ファイルがリポジトリに追加されたので、次に行うべきことは、それらの変更をGitファイルシステムに書き込むことです。これにより、フォルダ内のすべての新しいファイルに適切にタグ付けとハッシュが行われます。これを行うには、リポジトリの現在の状態を「コミット」する必要があります。
そのためには、次のコマンドを実行できます:
git commit -aこれにより、Gitはキャッシュ内に保持しているすべての内容を仮想ファイルシステムに書き込むように指示します。
そこから、Gitはこの特定のコミットについての説明を求めます。これにより、何が含まれているかについての簡単な説明を提供し、このコミットを他のコミットと簡単に区別できるようになります。私の場合、これは最初のコミットなので、「初期コミット」と書くだけにします。

これで、次のコマンドを実行して、Gitがディレクトリ内のすべてのファイルを認識しているかどうかを確認できます:
git ls-files
上記の操作中に、Gitがあなたを認識できないというエラーを投げた場合は、誰であるかを教える必要があります。それを行うのは、次のように入力するだけです:
git config --global user.name "Your_Username"
git config --global user.email "[email protected]"Gitでの基本的なファイル操作
ほとんどの場合、UNIXコマンドはGitで動作します。これは、Gitリポジトリ内のすべてのファイルとフォルダに対してls、cp、mv、およびrmを使用できることを意味します。ただし、Gitオブジェクトを簡単に操作するために使用できる特定のコマンドがいくつかあります。
例えば、サブコマンドls-treeを使用して、特定のGitツリーの内容や各ファイルの現在のハッシュ値を表示できます。
git ls-tree master
使用できる別のコマンドは、Gitのmvのバージョンです。これにより、リポジトリ内のどこにでもファイルを移動し、その履歴を保持することができます。
git mv ./hello.file ./welcome.fileこれは、バージョン管理でファイルの名前を変更したいが、その変更をGitを通じて元に戻す能力も持ちたい場合に役立ちます。
それを知って、履歴を失うことなくファイルの名前を変更するために次のコマンドを実行できます。

最後に、Gitはオブジェクトを削除するためのサブコマンドも提供します。mvと同様に、現在のリポジトリ内のファイルを削除するためにGitのrmのバージョンを使用できます。この方法で、特定のファイルの現在のオブジェクトをクリーンに削除できます。
git rm ./old.file
リモートリポジトリのクローン
リモートリポジトリをローカルマシンにインポートすることも可能です。これは、ネットワークを介して別のプロジェクトをコピーする必要がある場合に便利です。Gitは、すでに存在するリポジトリをクローンする機能を提供します。
クローンの仕組みは、Gitがリモートプロジェクトのツリーを完全にコピーすることです。これにより、特定の時点で存在するリポジトリの全履歴を再作成できます。
git clone https://github.com/git/git.git
ローカルネットワークにのみ存在するリポジトリをクローンすることも可能です。これは、LANを介して他の人と共同作業を行う場合に便利です。さらに、ローカルネットワークでプロジェクトをクローンするプロセスはまったく同じです:
git clone 192.168.1.100:/home/bob/awesome-projectまた読む: Gitエイリアスを使用してGitをより効率的にする方法
オンラインプロジェクトのためのGitの使用
これにより、他の人と共同作業を行う別の方法は、サードパーティのホスティングを介して行うことです。これにより、Githubのようなリモートサービスを使用して、インターネット上でプロジェクトをホストします。これは、大規模なオーディエンスに作業を迅速かつ簡単に配布する必要がある場合に非常に便利です。

それだけでなく、Githubのようなサービスは、リポジトリの作成と維持のプロセスを合理化します。そのため、リモートネットワークで他の人と共同プロジェクトを行うつもりであれば、強力なサービスです。
最初のオンラインリポジトリを作成する
それを知って、Githubを通じてリポジトリを開始するのは非常に簡単です。アカウントにログインすると、サイトはあなたの個人のランディングページにリダイレクトします。
このページには、現在フォローしているプロジェクトの最新の更新が表示されます。それには、他のプロジェクトへのすべての貢献の簡単な履歴が含まれます。

ここから、プロフィール写真の横にある「+」サインをクリックする必要があります。これにより、アカウントのためのいくつかのアクションを選択できる小さなドロップダウンメニューが表示されます。そのメニューから「新しいリポジトリ」リンクをクリックする必要があります。

ここでは、オンラインで行いたいプロジェクトの詳細を指定できます。そこから、プロジェクトを微調整するためにいくつかのオプションを設定する必要があります。

まず、プロジェクトのリポジトリ名を提供する必要があります。これは、他の人がリポジトリを探すときに検索する名前として機能します。
次に、プロジェクトのプライバシー設定を設定する必要があります。公開と非公開の間で選択できます。公開リポジトリは、他の人がオンラインでプロジェクトを検索できるようにしますが、非公開リポジトリは、特定の人にのみ共有する能力を与えます。
最後に、「リポジトリを作成」ボタンをクリックして、新しいプロジェクトを確定します。
また読む: ローカルおよびリモートのGitブランチを削除する方法
Githubをローカルマシンにリンクする
それに続いて、次に行うべきことは、ローカルマシンをGithubアカウントにリンクすることです。これを行うには、2つのことを行う必要があります:
- まず、マシンのためのSSHキーを作成する必要があります。これは、コンピュータ内でローカルに生成できる短い暗号鍵です。
- 最後に、Githubに現在のSSHキーを教える必要があります。これにより、あなたのマシンはGithubに対して固定のアイデンティティを持つことになります。これにより、リポジトリを更新するたびにあなたを確認するためにこのアイデンティティが使用されます。
SSHキーの作成
DebianまたはUbuntuを使用している場合は、aptを使用してSSHをインストールできます:
sudo apt install ssh
そこから、ssh-keygenプログラムを実行してSSHキーを作成できます:
ssh-keygen -t ed25519 -C "[email protected]"
ssh-add /home/$USER/.ssh/id_ed25519SSHキーのリンク
Githubダッシュボードに戻り、プロフィール写真をクリックし、次に設定をクリックします。

これにより、Githubアカウントの一般設定が表示されます。ここから、「アクセス」セクションのページの左側のサイドバーにある「SSHおよびGPGキー」リンクをクリックする必要があります。

「SSHキー」ヘッダーの横にある「新しいSSHキー」ボタンをクリックします。これにより、あなたの新しいSSHキーの内容をコピーできるキー設定ページが読み込まれます。

キーファイルを開き(私の場合は「~/.ssh」ディレクトリ内のid_ed25519.pubキー)、テキストエディタで内容をコピーしてGithubに貼り付けます。
ローカルコミットをオンラインにプッシュする
最後のステップは、ローカルプロジェクトの内容をオンラインにアップロードすることです。
ローカルマシンで、Gitフォルダに移動し、次のコマンドを実行します:
git remote add origin [email protected]:ramcesred/my-project.git
ここから、ローカルプロジェクトが現在マスターブランチにあることを確認する必要があります。これにより、Gitはプロジェクトの適切なバージョンをコピーします。それを確認するために、次のコマンドを実行できます:
git branch -M main最後に、プロジェクトの現在の状態をオンラインにプッシュします:
git push -u origin main
おめでとうございます!これで、Gitプロジェクトの基本的な作業設定が整いました。それだけでなく、Gitの仕組みとそれをどのように活用できるかについての基本的なアイデアも得られました。
また読む: WindowsにGitとGit Bashをインストールする方法
よくある質問
他の人が私のオンラインGitプロジェクトに加えた変更を取得することは可能ですか?
はい!他の人がオンラインリポジトリに加えた変更をコピーすることは可能です。リモートオリジンからプルすることでこれを行うことができます。
次のコマンドを実行することで、簡単に更新をプルできます:git pull origin main
Gitを使用する際に注意すべき問題は何ですか?
Gitを使用する際の最大の問題の1つは、バイナリファイルを保存する際に多くのスペースを必要とすることです。これには、画像、オフィス文書形式、コンパイルされたプログラムなど、プレーンテキストでエンコードされていないファイルが含まれます。
これは主に、Gitがオブジェクトを保存するために使用する圧縮およびハッシュアルゴリズムがプレーンテキストファイルを重視するためです。バイナリをバージョン管理に含めることは可能ですが、Gitでの使用を避けることが良い習慣です。
Gitツリーにファイルを含めないことは可能ですか?
はい!コミットからファイルを簡単に除外できます。「.gitignore」ファイルを使用して、特定のファイルをGitに含めたくないことを伝えることができます。
これは、リポジトリのルートフォルダに作成する隠しテキストファイルです。この中に、Gitに無視させたいファイルやディレクトリの相対パスを含めます。
画像クレジット: Unsplash