🐈

Git、Github 使い方

2024/03/29に公開

概要

Gitとは

Gitはファイルなどのバージョンを管理するシステムです。

Gitの仕組み

どのファイルを誰がいつ何を変更したのかがわかります。
Gitにおけるリポジトリとは、プロジェクトのファイルとそれらの変更履歴を格納する場所です。
commitすることによりファイルの変更履歴はローカルリポジトリ(開発者の個々のマシン上に存在するリポジトリ)に保存されます。
開発者は自分のローカルリポジトリで作業を行い、満足したら変更をリモートリポジトリにPushします。
チームメンバーが共同で作業するプロジェクトの中心的なリポジトリがリモートリポジトリ(インターネット上またはネットワーク内のサーバー上に配置されているリポジトリ)となります。開発者はこのリポジトリから最新の変更をPull(最新のファイルをとってくる事、ダウンロード)したり、自分の変更をPush(アップロード)したりします。

イメージ図

インストール
https://git-scm.com/

バージョン確認

git version

Gitコマンド

Gitを学ぶのは最初は難しいかもしれませんが、基本的なコマンドをマスターすれば、非常に強力なツールになります。以下は、日常的によく使用されるGitコマンドのリストです。これらを押さえておくと、ほとんどの基本的な作業ができるようになります。

基本設定

  • Gitで使用するユーザー名を設定します。
    git config --global user.name "Your Name"

  • Gitで使用するメールアドレスを設定します。
    git config --global user.email "youremail@example.com"

リポジトリの作成とクローン

  • 現在のディレクトリに新しいGitリポジトリを初期化します。
    git init

  • リモートリポジトリのクローンをローカルに作成します。
    git clone [URL]

ファイルの追加とコミット

  • git add [file]: ステージングエリアにファイルやディレクトリを追加します。全ファイルを追加するには git add . を使用します。
  • git commit -m "Commit message": ステージングエリアの変更をリポジトリにコミットします。

ブランチ操作

  • git branch: ローカルブランチのリストを表示します。
  • git branch [branch-name]: 新しいブランチを作成します。
  • git checkout [branch-name]: 指定したブランチに切り替えます。新しいブランチを作成して切り替えるには git checkout -b [branch-name] を使用します。

リモートリポジトリとの同期

  • git pull [remote] [branch]: リモートリポジトリから最新の変更を取得し、現在のブランチに統合します。
  • git push [remote] [branch]: ローカルの変更をリモートリポジトリに送信します。

変更の確認

  • git status: リポジトリの現在の状態を表示します。変更されたファイル、ステージングされている変更、現在のブランチなどがわかります。
  • git log: コミットの履歴を表示します。
  • git diff: 作業ディレクトリとステージングエリアの差分を表示します。

Githubとは

GitHubは、ソフトウェア開発者がコードを共有し、共同で作業するためのプラットフォームです。Gitバージョン管理システムを基にしており、個人や団体がプロジェクトをホストし、管理することができます。GitHubを利用することで、開発者は自分のコードを世界中の他の開発者と共有したり、他のプロジェクトに貢献したりすることが可能になります。

サインイン
https://github.co.jp/

特徴

  • リポジトリのホスティング:ソースコードをオンラインで保存し、管理することができます。これにより、プロジェクトに対する変更履歴が保持され、バージョン管理が容易になります。
  • コラボレーション:複数の開発者が同じプロジェクトで作業できるように、機能を提供します。プルリクエストを通じてコードレビューを行ったり、コメントを交わしたりすることが可能です。
  • フォークとプルリクエスト:他のユーザーのリポジトリをフォーク(コピー)し、自分の変更を加えた後、プルリクエストを通じてその変更をオリジナルのリポジトリに統合することができます。
  • GitHub Actions:ソフトウェア開発ワークフローを自動化するためのCI/CD(継続的インテグレーション/継続的デリバリー)ツールです。

Discussion