Gitはバージョン管理を行うためのツールの一つです。Gitを利用することで、ソースコードを変更前に戻したり誰がいつ何処を変更したのかを把握することが可能になります。
インストール
初期設定
ユーザー名/メールアドレスを設定します。
git config --global user.name "git taro"
git config --global user.email git.taro@example.com
プロキシ配下の場合(認証がある場合はuser:passにユーザーIDとパスワードを設定)
※パスワードに@がある場合は、@をURLエンコードした値(%40)を使用します
$git config --global http.proxy http://proxy.server.com:port
$git config --global http.proxy http://user:pass@proxy.server.com:port
git config --global --list
で設定確認
基本操作
Gitに限らず、バージョン管理系のソフトはファイルの変更を「コミット」(記録)することで、変更履歴を作成します。
この変更履歴にはメッセージを付けることができるので、「何のために」「ソースコードのどの箇所を変更したのか」を記録していくことができます。
コミットメッセージとしてどんなものが適切なのかは、こちらの資料を参照してみてください。
Gitでの基本的な操作は、以下のようになります。
- リポジトリの作成: バージョン管理の対象となっているフォルダを「リポジトリ」といいます(ざっくり言えば)。これは、外からとってくる場合と自分で作る場合の2通りがあります。
-
git init
: フォルダ内でこのコマンドを実行することで、そのフォルダをバージョン管理対象=Gitリポジトリにすることができます。 -
git clone
: 外部のリポジトリを、ローカルにダウンロードします。この場合、外部のリポジトリはすでにGitリポジトリのため、バージョン管理が行われています。 - コミットの作成
-
git add
: コミット対象の(変更された)ファイルを登録する -
git commit
: 変更を記録する - (コミットの送信): リポジトリがオンラインにある場合は(GitHubなど)、手元で行ったコミットを外部のリポジトリに送信します
-
git push
: ローカルのコミットを外部のリポジトリに送信する
全体像は以下のような図になります。
基本
# フォルダを作成
mkdir myRepository
# git リポジトリにする
git init
# ~何かしらファイルを変更~
# 変更の登録
git add -A
# 変更の記録
git commit -m "commit message"
なお、リポジトリに含めたくないファイルは.gitignore
で管理します。各言語や開発環境によって設定内容が変わってくるため、こちらから選んでくるとよいです。
.gitignore
を設定していないと、リポジトリのサイズが肥大化したりする弊害があります。リポジトリを作成した際は必ず確認しましょう
取り消しを行う場合
上からadd、commitの取り消し、commit メッセージの修正を行う場合のコマンドになります。
git rm -r --cached .
git reset --soft HEAD~
git commit --amend -m "new message"
commitログの修正
git rebase -i HEAD~3
HEAD~で修正するコミットログの範囲を設定(3なら、直近3回のコミットを修正)
変更内容の確認
上からadd、commit、commitログの確認になります
git diff --cached --name-only
git diff HEAD^ --name-only
git log --pretty=oneline --abbrev-commit
branchの作成
まとまった変更を行うときは、ブランチという作業スペースを作成し、そこで変更を行っていき後で統合(マージ)を行います。
以下はブランチの作成/作成したブランチへの移動/削除/確認のコマンドになります。
git branch xxx
git checkout xxx
git branch -D xxx
外部のリポジトリに修正を送る場合(Pull Request)もブランチを使った作業になります。詳細は以下の記事をご参照ください。
GitHubへpull requestする際のベストプラクティス
その他
標準エディタの使い方
git commit
でメッセージを入れ忘れたり git rebase すると謎なモードになりますが、これが標準のエディタです。
とりあえず以下のコマンドさえ覚えていれば困りません。
コマンド | 説明 |
---|---|
dd | 行削除 |
i | 編集モードに入る。これでメッセージを編集できる |
escキー | 編集モードから抜ける |
:w | 編集内容を保存する |
:q | エディタモードを終了する |
オンラインリポジトリ(GitHub / Bitbucket)関連
リモートリポジトリの登録/削除/確認
git remote add xxx https://xxxx
git remote -rm xxx
git remote show xxx
git remote
リポジトリのダウンロード
git clone https://xxxxx
コミットの送信(remote名・ブランチ名で宛先指定)
git push xxx master
リポジトリ側の更新をローカルに反映
git pull xxx master
参考リンク
上記で紹介したコマンドの、より詳細な使い方は以下の記事をご参考ください。