LoginSignup
26
30

More than 5 years have passed since last update.

gitに慣れるためのgit入門

Last updated at Posted at 2016-11-15

gitに慣れるためのgit入門

初めに

  • 慣れない人 <= 私。しつこいほど事前、事後確認しています。

  • 優先順位として、

    • masterブランチでリモートリポジトリまでとにかくあげる(一連の流れを覚える)
    • add, commitの前後に確認できるコマンドを覚える
    • add, commitを間違った時の取り消し方を覚える => add, commitが制御できる
    • branchの仕方を覚える(後は、リモートリポジトリからローカルに持っていきたいときの仕方を覚える)

がよいかな、と思います。

一般的な書籍とかだと、add -> commit (-> remote add origin) ->pushの流れの後に、branchの説明に入るのが多い気がします。個人的には、間違った時や、自分が何をadd, commitしたかを確認できたほうが安心しますし。

初めてのgit

  • コマンドのフローについては、Gitポケットリファレンス-岡本-隆史 の付録のチートシートがかなりわかりやすいと思います。以下、自分が説明することは事前、事後確認しながらリモートリポジトリにpushするまでのプロセスです。

ローカルリポジトリにコミットするまで

自分がはまった所

  • 容量制限

https://help.github.com/articles/what-is-my-disk-quota/

  • リポジトリサイズには物理的な上限は設定していない
  • ただし1GB以下に収めるようにという要請(お願い?)がある
  • それを超えると注意(要請)メールが送られる場合あり
  • その中の単一ファイルには100MBまでという物理的上限がある
  • 50Mを超えるファイルがあると警告を出す
  • 100Mを超えるファイルは受け付けない
  • githubのホームページで新しくリポジトリを作成しわすれていた(後述)

バージョン管理の初回

git init

git add

ステージングエリア(index) ... コミット前の調整ができる場所
実際にコミットが作られてしまう前に、本当に作りたいコミットを練り上げる1

# git initしたディレクトリに移動してください。(.gitフォルダがある場所)

# 事前に大きすぎるファイルがありそうなときは、確認(100KB以上の物を抽出)
# du :  ディレクトリ内のファイル容量を表示する。 (-a:ファイルも。 -k:KB表示)
du -ak | gawk '{if ($1 > 100) print $0}'
# lsで事前に確認
ls directory-name/file*
#directory-nameのfile*をステージングエリアに挙げる
git add directory-name/file*
#もしくは対話的にaddしていく
git add -i directory-name/file*
# もしくは、一つ一つのファイルに対して、ステージングエリアに載せるかどうか、選択もできる
git add -p
#事後確認 (modified と untrackedが表示される)
git status
# addするごとにgit statusで作業内容を確認すると安心ですね!

git commit

git addした後は、確認を取ってcommitします。

#もう一回事後確認 (modified と untrackedが表示される)
git status
#事後確認したら、commit
git commit -m "changed"
#commitの事後確認2個前までのcommitを確認
git log --stat -2

リモートリポジトリへの送信

  • origin ... リポジトリの場所(URL)の別名 (だいたいoriginで構わない)
  • master ... ブランチの名前

まずは、忘れずに、githubのホームページで新しくリポジトリを作成しましょう!!(僕は初回この操作を忘れてssh周りのエラーでものすごく苦しみました((+_+))
image

その後、

#初回は、originがどこのurlを指しているか紐づけを行う。2回目以降は不要
git remote add origin https://github.com/username/repository.git
#  リモートレポジトリの確認
git remote -v
# -uはorigin(ローカルリポジトリ)とmaster(ブランチ)の対応付け
# (初回のみで良い。対応付けがすんだら、git pushのみでOK)
git push -u origin master

Note) ちなみに1commitに1pushである必要はありません。数度add->commitしてできたコミットをまとめてpushすることも可能です。

間違ってコマンドを打ってしまった時の修正方法

  • 間違ったとき焦るよね。

git addの修正

#事後確認 (modified と untrackedが表示される)
git status
# ステージングエリアに乗せてしまったファイルをステージングエリアから外す。
git reset *

git commitの修正

# commitの事後確認2個前までのcommitを確認
git log -2
# コミットメッセージを間違えた時(エディタが開いて、コミットメッセージを直に修正できる)
git commit --amend
# または、コミットを取り消したい(取り消したいコミットが直前のものでないときに用いる)
# 5e1d749はcommit識別番号
git revert 5e1d749 

Note) addせずに(し忘れて)commitコマンドを打っても、"Changes not staged for commit"とでて、実際にはcommitされません。git log --statで何も変わっていないことが確認できます。

git remote add originの修正

#  リモートレポジトリの確認
git remote -v
#  リモートレポジトリの変更
git remote set-url origin https://github.com/username/repository.git
#  リモートレポジトリが変更されたことを確認
git remote -v

とりあえず、理解しながら数をこなそう。


  1. 入門git p42 を参照 

26
30
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
30