LoginSignup
0
0

Git・Githubについての学習

Last updated at Posted at 2024-06-06

自己紹介

未経験Webエンジニアです。 大手sierから自社開発系web企業に転職するために学習しています。 学習したことをアウトプットしています。

本記事の内容

開発ではGit・Githubを使用するので、基礎となる言葉をまとめたいと思います。
本書ではGithubのリモートリポジトリの以下タブ(Actions、Packages、Releases、Wiki、Security、Insights、Settings)は説明されていない。CI/CDにはActionsが必要とのことなので、後日別書で学習したい。

想定読者

・未経験エンジニア
・Git、Githubについてまだ何もわからない方

参考文献

  • たった1日で基本が身に付く!Git超入門

本題

単語 意味
バージョン ファイルの履歴のこと
バージョン管理 古いバージョンのファイルを残しておき管理すること。手作業でバージョン管理をするのではなく、「バージョン管理システム」で管理する。
Git 現在最も広く使われているバージョン管理システム。Linuxの開発に使うために生み出した。現在は開発以外にも、書籍の現行管理のような用途にも使われる。Gitを使うと、「誰が、いつ、どのファイルの、どの部分を変更したか」を明確に管理できる。よって、問題が起きれば原因究明でき、履歴を遡って問題発生前に戻せる。複数人でファイルを共有して共同作業する仕組みもある。「コミット、プッシュ、プル」といった操作を行う。複数人が同時にファイルを編集して食い違いが起きた場合は、「コンフリクト(衝突)」の状態になり、誰かがコンフリクトを解決するまでファイルを1つに統合できない。
Github Gitの仕組みを利用したインターネット上のサービス。GithubはGitのファイル共有の仕組みをネットワーク上で行うための、保管場所となるサーバーを提供してくれる。内容を公開したプロジェクトは無料で利用できる。2020年に東京都が「新型コロナウイルス感染症対策サイト」をGithub上で公開した。 また、月額数百円で非公開のファイルを記録できるため、非公開プロジェクトのファイル共有にも用いられる。
Gitクライアント Gitを利用するためにインストールするもの。コマンドラインタイプトGUIタイプの2種類がある。Gitクライアントのうち、GitBashはGit For Windowsが配布しているWindows用のアプリ。GitHub DesktopはGutHubが配布しているGUIアプリで、軽く覚えやすい。SourceTreeは多機能のGUI。
テキストファイルとバイナリファイル テキストファイルは文字を表す数値だけで構成され(.txt .html .css ソースコードファイル)、それ以外はバイナリファイル(JPEGやPNGなどの画像データや、WordやExcelなどの文書ファイル)。 Gitはテキストファイルを管理する目的で作られたため、バイナリファイルでは管理項目に制限がある。「いつ、だれが、どのファイルを更新したか」は管理できるが、「バイナリファイルのどの部分が変わっているか」を管理することはできない。 また、大きなバイナリファイルをアップロードするとトラブルが起きることがある。100MBを超える動画ファイルはアップロードすべきではない。

Gitの基本的な仕組み

  • Gitを利用するには、パソコン内のフォルダをリポジトリに変える。 .gitフォルダがリポジトリの本体。リポジトリに記録する捜査を「コミット」という。
  • リポジトリ化したフォルダ内は2つの世界に分かれる。①Git以外のプログラムから見える「ワーキングディレクトリ」②Gitが管理する「リポジトリ」。コミットが複数記録されており、リポジトリを見られるのはGitHub DesktopのようなGitに対応したアプリのみ。
  • コミットには「コミット操作を行った時点のワーキングディレクトリの状態」が記録される。ワーキングディレクトリのファイルをすべて削除しても、リポジトリにコミットしていれば、そこからファイル復元が可能。また、個々のコミットには直前のコミットからの変更点(差分)の身が記録される。細心のコミットだけあってもファイルを復元することはできない。
  • 一度コミットしたデータはリポジトリから削除できない。(最新コミットだけは取り消せる)コミット後にワーキングディレクトリからファイルを削除してコミットしても、「ファイルを消した」というコミットが登録されるだけとなる。
  • Gitで複数人の共同作業をするには、ネットワーク上にリモートリポジトリを作成し、パソコン内のローカルリポジトリと同期する。ローカル→リモートのリポジトリ反映は「プッシュ」、リモート→ローカルのリポジトリ反映は「プル」を行う。複数人がローカルリポジトリで作業し、同じファイル内容が食い違った場合は「コンフリクト」が起こり、解消するまでローカルとリモートのリポジトリを同期できなくなる。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0