Gitの簡単な使い方

「git clone」してから開発する上で、困らないようにするための最低限の備忘録です。

Debian 12.5
Git 2.39.2

設定

ユーザー名とE-mailアドレスを設定する。
設定は~/.gitconfigに保存される。--globalを付けない場合はリポジトリのローカル設定ファイルに保存される。

$ git config --global user.name "username"
$ git config --global user.email "user@hirohiro716.com"

認証情報を平文で記憶させる。
--globalを付けない場合、credential.helperという設定値のみがリポジトリのローカル設定に保存され、認証情報は~/.git-credentialsに平文で保存される。

$ git config --global credential.helper store

基本的な操作

ワークツリーの状態を確認する。

$ git status

リモートも含めてブランチ一覧を表示する。
※-aに省略可能

$ git branch --all

リモートの別のブランチに変更する。

$ git switch branch2

ローカルに現在のブランチの派生ブランチを作成する。

$ git branch branch3

作成したローカルのブランチに切り替える。

$ git checkout branch3

作成したローカルのブランチをリモートにpushする。
※-uに省略可能

$ git push --set-upstream origin branch3

コミット関連の操作

変更したファイルをステージングエリアに追加する。

$ git add test.txt

変更したファイルをすべてステージングエリアに追加する。

$ git add .

commitを作成する。
※-mに省略可能

$ git commit --message "Commit message"

作成したcommitをリモートにpushする。

$ git push

commitのログを表示する。

$ git log

特定ファイルのcommitのログを表示する。

$ git log *.txt

特定のコミットを取り消すコミットを作成

取り消す対象commitを指定する。複数人で開発している場合や、履歴を残したい場合はこちらを使用する。

$ git revert HEAD
$ git push

HEADを前の状態に戻して履歴からも削除

戻したい状態(commit)を指定する。すべてなかったことになるので、個人開発で誤ってpushした場合はこちらを使用する場面が多い。
※HEAD^はHEADの1つ前のcommitを指す
--softで変更ファイルをステージングエリアに残す
--mixedで変更ファイルをステージングエリアから取り除いて残す
--hardですべての変更を破棄してHEAD^の状態に戻す

$ git reset --mixed HEAD^
$ git push --force

さくらのレンタルサーバーにGitリポジトリを作成してEclipseから使う

さくらのレンタルサーバーはスタンダード、Eclipseはoxygenを使用した。

sshでレンタルサーバーに接続する。
「Welcome to FreeBSD!」で%が表示されるのでbashに切り替える。

$ ssh xxx@xxx.sakura.ne.jp
% bash

ホームディレクトリに「repositories」ディレクトリを新規作成して、その中に各リポジトリを作成する。

$ mkdir repositories
$ cd repositories
$ mkdir project1.git
$ cd project1.git

gitは最初からインストールされているので下記コマンドでベアリポジトリを作成する。

$ git init --bare --shared

Eclipseで「Gitリポジトリ」ビューを表示して「Gitリポジトリのクローン」でウィザードを起動して、下記のような感じで入力して次へ。

ホスト xxx.sakura.ne.jp
リポジトリパス ~/repositories/project1.git/
プロトコル ssh
ユーザー xxx
パスワード password

ブランチの選択は何も出てこないが、そのまま次へ進み、cloneの宛先ディレクトリを指定して完了する。