Posted at

今さらだけど、Git周りについて(基本コマンド, ブランチ)


はじめに

Gitは超便利なプログラムのソースコード等の変更履歴を記録や追跡などが行えるツールです。

もはや開発では当たり前のように使われていると思いますので、身につけている方も思いと思いますが、アウトプットも兼ねてGitの基本コマンドからブランチ分けまで書いてみます。


Gitとは

そもそもGitとは ... プログラムのソースコード等の変更履歴を記録や追跡が行えるツール

です。

"変更履歴を記録や追跡が行える"とは、つまりファイルの内容を過去のものに戻したり、ファイルのどの部分を編集したのかを目視で確認することができるのです。めっちゃ便利。


Gitのリポジトリ

Gitのリポジトリには"リモートリポジトリ"と"ローカルリポジトリ"があります。

"リモートリポジトリ" ... 専用のサーバに配置して複数人で共有するためのリポジトリ

"ローカルリポジトリ" ... ユーザー個人が各々のマシン上にもるローカル環境のリポジトリ

普段作業するときは"ローカルリポジトリ"で作業し、公開したいタイミングで"リモートリポジトリ"にアップロードします。


Gitのリポジトリ作成からリモートリポジトリへアップロード

まずリポジトリを作成しましょう。

リポジトリの作成方法は2つあり、一つはすでにあるリモートリポジトリをコピーする方法。もう一つはリポジトリを新規作成する方法です。

すでにあるリポートリポジトリをコピーするには"clone"コマンドを使います。

git clone (リポートリポジトリのパス)

とします。

新規作成には"init"コマンドで初期化を行います。

git init


addとcommit

次にリポジトリにファイルを追加してからコミットしてみます。

追加するには"add"コマンドです。

git add (追加したいファイル名)

git addコマンドは様々ば方法で実行することが可能です。

*以下は一例です。

git add . # カレントディレクトリのすべてのフォルダ,ファイル

git add *.py # pythonファイルのすべて
git add -u # 変更されたファイルのすべて
git add -n # 追加されたファイルを調べる
git rm --cached # addしてしまったファイルを除外

次にコミットです。

コミットも様々な方法で実行可能です。

*以下は一例です。

git commit -a # 変更のあったファイルすべて

git commit --amend # 直前のコミットを取り消す
git commit -v # 変更点を表示してコミット
git commit -m "コメントを追加" # コメントを残してコミット


リモートリポジトリへpush

最後にpushコマンドを実行し、リモートへアップロードします。

git push master origin

or
git push

以上でリモートへのアップロードまでが終了です。


ブランチとは

ざっくり言うと枝分かれて別々の作業が行えるという機能です。

masterという一番大元のブランチがあり、そこから処理や機能分けで開発するためにブランチを作成して最後にすべてのブランチを統合します。

処理や機能で分けて開発することによってさらにどこを追加し、どこを編集し、等わかりやすくなりますよね。


ブランチ操作

ブランチ作成は"branch"コマンドです。

git branch (ブランチ名)

とします。

ブランチを切り替えてみます。

コマンドは"checkout"です。

git checkout (ブランチ名)

ブランチを削除するコマンドも必要ですね。

"-d"オプションをつけることで削除が可能です。

git branch -d (ブランチ名)

ブランチ名を変更したいときは"-m"オプションです。

git branch -m (ブランチ名)

それではブランチごとの編集を統合(merge)してみましょう。

まず、変更ファイルをコミットする必要があるため編集元のブランチでcommitを行いmasterに移動します。

git merge (ブランチ名)

これで大元のmasterブランチにファイルを更新することができました。


最後に

Gitは本当に便利ですね、Githubと一緒に使うとさらに開発が楽になると思います。

この記事ではまだほんのさわりの部分しか触れていませんので、ggるなりなんなり調べてみるとさらに色々な編集方法や名義方法が出てきますので是非調べてみてください。

しがない学生が書いた記事を読んでくださった方には感謝します。ありがとうございました。