Gitの紹介

公開: 2022-06-30

私がウェブサイトを構築し始めたとき、私は「カウボーイコード化」しました。これは、サーバー上でライブでファイルを編集することが多かったことを意味します。 これがひどい考えであることに気付くのに、私はほんの少しの壊れたサイトしか必要としませんでした。 それから私は自分のコンピューター上でローカルにサイトを構築し始めました。 FTPクライアントの間違った場所にファイルを移行するためだけにローカルファイルを編集したことが何度もあります。 たまにそれは、私がうまくいけば保存していたバックアップコピーを探し回らなければ修正できなかったファイルを上書きすることを意味します。

それでもFTPを処理していて、ファイルをロールバックできない場合は、バージョン管理にGitを使用する方法を学ぶときが来ました。

バージョン管理とは何ですか?

バージョン管理システム(VCS)は、ソフトウェア開発者が時間の経過とともにコードへの変更を管理するのに役立つソフトウェアの一種です。 優れたVCSシステムは、行われたコードの各変更を追跡します。 これは、何かを壊した場合、動作するまで「元に戻す」を押そうとせずに、動作していた以前のバージョンのコードにロールバックできることを意味します。

チーム環境では、VCSは、さまざまなメンバーがファイルを更新するときにコードの変更をマージできるツールを提供することにより、さまざまなメンバーとの連携を支援します。

Gitで行うことの1つは、構築する機能ごとに新しいブランチを作成することです。 つまり、ブランチで行った変更を追跡できますが、メインブランチに戻ることで、サイトの現在の状態に戻ることができます。 このワークフローについては後で詳しく説明します。

Gitとは何ですか?

Gitはバージョン管理システムですが、それだけではありません。 メインのWordPressリポジトリはSVNを介して実行されますが、Gitのコピーもあります。 Mercurial、Visual Source Safe、VESTA、およびその他の多くのオプションもあります。

これらすべてのオプションにもかかわらず、Gitはほとんどすべての人が使用するものであるため、今日学習するバージョン管理です。

基本的なGitの用語とコマンド

Gitの使用方法の仕組みを掘り下げる前に、いくつかの用語を理解する必要があります。 定期的に遭遇する用語についてのみ説明します。

あなたが遭遇する可能性のあるすべてのより完全なリストについては、これを見てください Gitリファレンスまたはこれ Gitコマンドの完全なリスト

追加:コードに変更を加えたら、コマンドgit addを使用して変更を追加し、コミットできるようにします。

ブランチ:ブランチは、メインの作業プロジェクトとは異なるバージョンのリポジトリです。 すべてのリポジトリには、メインブランチ、またはより一般的には古いプロジェクトではマスターブランチが付属しています。 最近、GitとGithubは、masterという単語の歴史的な問題のために、デフォルトのブランチ名をmasterからmainに変更し始めました。 Git 2.28では、新しいプロジェクトのデフォルトのブランチ名を設定することもできます。

チェックアウトgit checkoutコマンドを使用して、リポジトリ内の異なるブランチを切り替えます。 このコマンドを使用すると、Gitはファイルの内容を変更したり、ブランチ間で異なるファイルを追加および削除したりします。

クローンgit cloneコマンドは、ソースリポジトリからリポジトリのコピーを作成するために使用されます。 このコマンドを使用して、リモートリポジトリのローカルコピーを取得し、コードで作業できるようにします。

コミットgit addを使用したら、ファイルの状態をgitに保存できるようにするためにgit commitを使用する必要があります。

initgit initは、Gitが操作する必要のあるすべての基本ファイルを含む空のリポジトリを作成します。

マージ:1つのブランチに変更を加え、それらを追加してコミットしたら、gitmergeコマンドを使用してそれらの変更を他のブランチに移行します。

オリジン:これは、リポジトリのプライマリバージョンのデフォルト名です。 私は通常、起源よりも説明的なものに変更します。 Githubを使用している場合は、Gitの設定を変更して、オリジンがgithubになるようにします。 これは、頭の中で物事を明確に保つのに役立ちます。

プッシュ:ローカルバージョンのリポジトリで行われたコミットでリモートブランチを更新します。

リポジトリ:これは「リポジトリ」とも呼ばれ、すべてのファイルのディレクトリであり、それらのファイルへの変更のGit履歴です。

ステータスgit statusは、作業リポジトリの現在のステータスを示します。

.gitignore :これは、Gitが追跡を邪魔しないファイルのパターンを含む隠しファイルです。 .gitignoreファイルに.DS_Storeがある場合、macOSがフォルダー内に頻繁に配置する厄介なファイルはすべて無視されます。

Gitリポジトリのホスティング

飛び込む前に理解しておくべきもう1つのことは、リポジトリのリモートロケーションは必要ありませんが、リモートロケーションがないと、Gitを使用する利点の一部が減少することです。 他の場所でホストされているリモートリポジトリがないと、コンピュータが故障したり盗まれたりした場合にコードのバックアップをとることができません。

GithubとBitbucketは、Gitリポジトリをホストするのに最も人気のある場所の2つです。これらはほとんど無料であり、プライベートリポジトリを持つことができるからです。 つまり、コードが他の誰かのサーバー上にあることを意味するので、そのアイデアが気に入らない場合は、サーバー上のGitlabを使用してリポジトリをホストできます。

Gitのインストール

macOSでは、gitをインストールする最も簡単な方法は、ターミナルを開いてgitと入力することです。これにより、gitをインストールするためのXcodeコマンドラインツールをダウンロードするように求められます。 それが完了したら、git –versionを実行して、使用しているgitのバージョンを確認できます。 それが機能しない場合は、macOSにgitをインストールする他の方法がいくつかあります。

Windowsユーザーの場合、公式のGitインストーラーを使用してGitをインストールできます。 GitにはGithubデスクトップアプリケーションもバンドルされていますが、これについては後で説明します。

Linuxを使用している場合は、gitをパッケージマネージャーにバンドルする必要があります。または、Linuxにgitをインストールするこれらの方法を確認できます。

Gitのデフォルトの設定

Gitをインストールしたら、各コミットで名前とメールアドレスとコミットメッセージを使用して、好みのエディターを使用してコミットに付随するコメントを入力するように構成する必要があります。 ターミナルアプリケーションを介してmacOSでこれらを設定する方法を見ていきます。

git config --global user.name "Your Name"は、コンピューターで行われるすべてのコミットに対応する名前を設定します。

git config --global user.email "[email protected]"は、実行するすべてのコミットに関連付けられている電子メールアドレスを設定します。

git config --global core.editor vimは、Gitvimのデフォルトエディターになります。 私はvimが大好きですが、誰もが大好きなのはエディターではありません。 Atomを使用する場合は、SublimeTextにgitconfig –global core.editor“ atom –wait”またはgit config –global core.editor“ subl -n -w”を使用します。

IDEに興味がある場合は、 Visual Studio Codeを使用すると、 PHPStormと同様に、アプリケーション内から直接Gitを操作することもできます

リポジトリの確立

gitをインストールして構成したので、基本的なリポジトリを開始しましょう。 ターミナルを開き、 mkdir test-repositoryと入力して、test-repositoryというフォルダーを作成します。 次に、 cd test-repositoryと入力してtest-repositoryディレクトリに移動し、 git initと入力します。

この時点で、フォルダ内に.gitという名前の隠しディレクトリが1つあります。 これは隠しファイルなので、ターミナルでls -aと入力して、隠しファイルを一覧表示する必要があります。

gitaddを使用する

次に、ターミナルにtouch test.txtと入力してファイルを作成しましょう。 次に、 git statusと入力して、追加したファイルを確認します。

ご覧のとおり、作成した新しいファイルは赤で表示され、ステータスが追跡されていないことがわかります。 つまり、Gitはファイルを認識しますが、その記録はありません。

git add test.txtと入力して、このファイルをステージングするようにGitに指示してから、もう一度git statusと入力すると、Gitは変更されたファイルを認識していることを通知するはずです。

Gitへのファイルのコミット

ファイルを追加したので、Gitがファイルのステータスを保存するようにファイルをコミットする必要があります。 次のコマンドでデフォルトのエディターを開かなくても、これを1行で実行できます。

git commit -m 'adding our first file'

フラグ-mは、一重引用符で囲まれた単語がコマンドに付随するコメントであることをgitに通知します。

これで、リポジトリにステータスが保存された単一のファイルが含まれます。

ブランチを作成する

Gitの真の力は、ブランチを始めたときに生まれます。 test.txtファイルに大量のファイルを書き込みたいが、それを保持することになり、現在の空のファイルに戻ることができるかどうかわからないとします。 これはブランチで実行できます。

ブランチを作成するには、 git checkout -b new-branch入力します。 これは、ブランチをチェックアウトすると同時にブランチを作成するためのショートカットであり、ブランチを作成する必要があるたびに使用します。

次に、 test.txtファイルを開き、テキストを追加して保存します。 次に、上記のようにgit addgit commit使用して、ファイルの状態を保存します。

次に、 git checkout masterと入力してデフォルトのメインブランチに戻し、 test.txtファイルの内容をもう一度確認します。 入力したテキストがすべて削除されていることがわかります。 Gitは、1つのブランチにのみ存在していた新しいファイルを削除することもありますが、そのファイルは記録されているため、削除されません。

ブランチをマージする

これで、ファイルに書き込んだ内容が気に入ったので、メインブランチと統合しましょう。 メインブランチにいることを確認し、 git merge new-branchと入力して変更を統合します。

test.txtの内容を見ると、変更内容がそのままメインブランチに表示されます。

WordPressでGitを使用する

上記の例は非常に単純ですが、プロジェクトでGitを使い始めるために必要なのはそれだけです。 それでは、Gitを使用してWordPressプロジェクトを取得する方法について正確に話しましょう。

最初の考慮事項は、フォルダー階層のどのレベルをGitリポジトリのルートにするかです。 テーマを作成している場合は、テーマフォルダーをリポジトリにすることができます。 プラグインを作成する場合も同じロジックが適用されます。

私は通常、テーマとプラグインを同時に使用しているため、リポジトリの場所としてwp-contentフォルダーを使用することがよくあります。 これを行うときは、アップロードフォルダーを無視して、すべての画像とアップロードされたファイルをリポジトリに追加しないようにします。 それらはリポジトリを乱雑にし、画像ファイルの圧縮が得意ではないため、Gitの速度を低下させる可能性があります。

デプロイワークフロー全体を処理している場合は、ルートのWordPressフォルダーをGitリポジトリのメインの場所にします。 次に、 wp-content/uploadswp-config.php.gitignoreファイルに追加してください。 wp-config.phpは各WordPressインストールに固有であるため、サイトが機能しなくなる原因となる他のバージョンのファイルにデプロイしたくありません。

すべてのプロジェクトの開始点として使用している.gitignoreファイルのコピーを見ることができます。 Gitリポジトリのルートとしてwp-contentを使用していることを前提としているため、WordPressのルートにいる場合は、無視パターンの一部を変更します。

GitGUIアプリケーション

Gitのコマンドラインで基本を説明しましたが、誰もがコマンドラインに慣れているわけではありませんが、Gitを使い始めたときはそうではなかったと思います。 今でも、セットアップを変更する前に、Gitが行っていることを視覚的に表現したい場合があります。

幸いなことに、使用できるGit用の優れたGUIクライアントがいくつかあるので、いくつかを強調してみましょう。

Githubデスクトップ(Windows / macOS)

Git GUIクライアントを見るときに始めるのに最適な場所の1つは、Githubデスクトップアプリケーションを使用することです。

多くのオープンソースプロジェクトは、コラボレーション用のコードリポジトリとしてGithubを使用し、標準のGithubフローを使用して作業を行います。 Githubデスクトップクライアントは、このフローの処理を支援するように構築されているため、プルリクエストの作成が簡単になります。

プルリクエストが何かわからない場合は、チェックアウトしてください プルリクエストに関するGithubのドキュメント

Linuxユーザーにとって残念なことに、公式のGithubデスクトップアプリケーションはありませんが、LinuxシステムにインストールされるGithubデスクトップのフォークがあります。

Gitタワー(Windows / macOS)

私が使用しているGitGUIはGitTowerです。 GitTowerはmacOSとWindowsで利用できます。 Gitを使い始めたとき、競合を解決し、このGUI内のファイル間で何が違うのかを確認する方がはるかに簡単であることがわかりました。

ワーキングコピー(iOS / iPadOS)

私のように主にiPadで作業する場合は、WorkingCopyを確認する必要があります。 Working Copyは、iOSおよびiPadOSで動作するフル機能のGitクライアントです。 ショートカット統合も備えているため、Gitワークフローの一部を自動化できます。

まとめ

今日はGitの知識で多くのことをカバーしてきましたが、このトピックについて1つのブログ投稿で網羅できる方法はありません。 Nexcessヘルプドキュメントとこれらの優れたリソースを使用して、学習を続けることができます。

  • Gitドキュメント
  • Pro Git Book
  • LaracastsGitレッスン
  • Git自身の外部リソース

Gitを使用してクライアントプロジェクトを管理することで、変更をロールバックしたり、実行した作業が不要になった場合にブランチ全体を破棄したりできるため、頭痛の種を減らすことができます。 十分にロールバックしたと思うまで、Ctrl + Zを押す必要はありません。Gitは、すべてを追跡します。