#はじめに
未来電子テクノロジーでインターンをしている<@kento_o>です。
GitHubは複数人で行うプロジェクトのバージョン管理や、オープンソースの様々なソフトウェアの配布などに、極めて便利で有益な効果をもたらします。
実務でも優先度が高いGitHubについての備忘録を記事にします。
#GitHub用語集
専門用語の意味をまとめると、
Git用語 | 意味 |
---|---|
リポジトリ | ファイルやディレクトリの状態を記録する場所 |
リモートリポジトリ | 専用のサーバに配置し複数人で共有するリポジトリ |
ローカルリポジトリ | ユーザー人ひとりが利用するために、自分の手元のマシン上に配置するリポジトリ |
ベアリポジトリ | ワークツリーを持たず、チェックアウト、マージができないリポジトリ。(可能なリポジトリをノンベアリポジトリと呼ぶ) |
ワークツリー | 履歴・バージョン管理を行いたいファイルがある場所。 |
インデックス | コミットしたいファイル、またはファイルの一部を登録する場所。 |
ステージ | ワークツリーからコミットしたいファイル、またはファイルの一部をインデックスに登録すること。 |
ハンク | 「ここを変更したよ」という範囲 |
コミット | インデックスに登録してある変更対象をローカルリポジトリに反映すること。 |
リセット | コミット前の変更をローカルリポジトリの状態に戻す、または特定のコミットまで状態を戻すこと。(ただし特定のコミットまで戻せるのはローカルリポジトリに限られる。) |
ヘッド | 「今、作業中」というブランチ、コミット。 |
チェックアウト | 上記のヘッドを切り替えること。 |
プッシュ | ローカルリポジトリの変更をリモートリポジトリに反映させること。 |
フェッチ | リモートリポジトリからデータをローカルリポジトリまで取得する。(ただし取得するだけで何もしない) |
プル | フェッチ+マージのアクションを行う。データを取得した後、ローカルリポジトリとリモートリポジトリの変更をワンアクションで実行可能。(マージしたくない時にプルしてしまった場合は、戻したいコミットのIDを調べて、git reset --hard IDで元に戻せる。) |
マージ | 異なるブランチの変更を反映させること。お互いの変更履歴が残る。 |
リベース | 異なるブランチの変更を反映させること。変更履歴が片方に集約される。 |
コンフリクト | マージ対象の2ファイルで同じ箇所が変更されており、自動でマージができないこと |
ブランチ | 履歴管理を枝分かれさせてたもの。ブランチを使うことにより、複数の履歴を並列に管理できる。 |
フォーク | リモートリポジトリをコピーしてリモートリポジトリを作成すること。 |
クローン | リモートリポジトリをコピーしてローカルリポジトリを作成すること。 |
プルリクエスト | フォークしたリポジトリでの変更を、フォーク元のリポジトリへ反映するよう依頼すること。 |
.gitignore | 履歴管理の対象外とするファイルを登録するところ。対象範囲は各リポジトリ。 |
.gitignore | 履歴管理の対象外とするファイルを登録するところ。対象範囲は全てのリポジトリ。 |
#ツール
現在使用しているツール
・OS 「Linux mint 19.1 Tessa」
・エディタ 「Atom 1.33.1」
・ターミナル 「Guake Terminal」
・シェルスクリプト 「bash or zsh」
#GitLab
おまけ程度に載せています。
このニュースに書いてあることを要約すると、
「Gitリポジトリをプロジェクト単位で管理可能」「クローズドな環境で、独自のGitHubに似たサービスを構築可能」という理解をしました。
#最後に
参考サイト
・Git/GitHubコマンド集
・今日からはじめるGitHub
・GitLab
・サルでも分かるGitHub入門
DockerやKubernetes、AWSやクラウドサービスが今後のメジャーなサービスになると予想されるので、最新の情報を常にインプットし、積極的なアウトプットを心がけていきます。。。
ギット スコシ ワカッタ