Gitとは
Gitは他の人と一緒にWeb開発したりするときとかに役に立つ機能みたいですね。ファイルの共有とかバージョン管理ができるみたいですね。
Gitの操作
gitでファイルを共有するにはいくつかの手順を踏まないといけないようです。gitの操作はターミナルで行うようです。
git init | gitを立ち上げる |
---|---|
git add index.html | 共有するファイルを選択する |
git commit -m “メッセージ” | コミットする |
git remote add リモート名 リモートのurl | リモートを選択する |
git push リモート名 master | リモートにファイルをアップロード |
git pull リモート名 master | リモートからファイルをダウンロード |
把握と選択
git status | 自分が変更したファイルを表示する ・addしたファイルは緑色 ・addしてないファイルは赤色 |
---|---|
git diff | 変更した内容(ファイルを編集した内容)を表示する |
git log | コミットの履歴を表示 ログを終了するには Qキー を表示する |
git log -p | コミットの変更内容を表示する |
リモートにファイルをアップロードするには上表の上から下をターミナルで実行すればよいようです。
リモートとは
Gitでは「リモート」というものにファイルがアップロードされる仕組みのようです。またダウンロードもリモートから行うことができるようです。
ファイルをリモートからダウンロードする
リモートからファイルをダウンロードするには pull を使えばよいようです。ダウンロードしたい人がpullを使えばよいみたいです。
Gitのコマンド操作まとめ
この記事はプログラミング学習サービスProgateの学習内容をもとに記事をつくっていますが、入門記事としてコンテンツを随時追加しています。
基本
作業ディレクトリ
ステージングエリア(インデックス)
リポジトリ(ローカル, リモート)
設定
#名前の設定 $ git config --global user.name "hoge" #メールアドレスの設定 $ git config --global user.email "hoge@mail.com" #色の設定 $ git config --global color.ui true
エディターの設定
gitが使用する標準のエディターを変更したいときは以下のようにします。emacsを使用する例です
$ git config --global core.editor emacs
設定の確認
$ git config -l ################ user.name=hoge user.email=hoge@mail.com color.ui=true
操作の流れ
$ git initを実行するとディレクトリに .git/configファイルが作成される
$ git init
適当なファイルindex.htmlを作成して $ git addを実行します。
$ git add index.html
次はコミットします。$ git commitを実行するとエディターがたちあがるのでメッセージを書いて保存します。
$ git commit #エディターがたちあがるのでメッセージを書いて保存 #$ git commit -m "hoge" の場合エディターが立ち上があらない #$ git commit --amend コミット履歴をのこさずにコミットする
ちゃんとコミットされているかlogを確認します。
$ git log #log# commit 2bd4382071b3eca68bdcb68c5cf20ebc0370e6ec Author: hoge <hoge@mail.com> Date: Fri Nov 9 14:51:22 2018 +0900 initial commiit
ログ
$ git log –oneline 1ライン表示
$ git log -p 内容をみる
$ git log –stat
状態の確認
$ git status ステータス
$ git diff アドしてない状態
$ git diff –cashed アドした後の状態
ファイルを削除したくなったら
gitではファイルを削除したり移動したりする場合はコマンドのまえに必ず git をつけておこないます
ignore
ignoreはgitに履歴に残さないための仕組みです。.gitignoreというファイルを作成して、そこに無視したファイルを書いていきます。
$ vi .gitignore ##ファイルの内容## #*.css と書いて保存 $ git status #.cssのファイルは無視される
前のバージョンに戻す
前のバージョンんに戻すには $ git reset を使用します。
$ git reset --hard HEAD #1個前に戻る # $ git reset --hard HEAD #2個前に戻る # $ git reset --hard idididididid #idを指定してバージョンを戻す # $ git reset --hard ORIG_HEAD #リセットの取り消し
平行開発
平行で開発するにはbrunchを作成しbrunchを変更して開発する。commit結果はbrunchごとに残るようになる
$ git branch hoge #branchの作成 $ git branch #現在のbranchの表示 $ git checkout hoge #branchの変更 $ git branch -d hoge #branchを消す $ git checkout -b hoge #branchの作成とチェックアウトを同時に行う $ git merge hgoe #hogeの変更をmasterにも反映させる
コンフリクト
コンフリクトは違うbranch同士で同じ場所を変更して merge しようとするとおこる
$ git merge fuga Auto-merging index.html CONFLICT (content): Merge conflict in index.html Automatic merge failed; fix conflicts and then commit the result.
<<<<<<< HEAD
hello jon
=======
hello bob
>>>>>>> fuga
コンフリクトの解決↓コンフリクトを解決して、その後コミットする。両方に反映されるわけではない
hello jon
tag
$ git tag v1.0 #直近のコミットにタグづけする $ git tag v0.9 idididid #idを指定してタグづけする $ git tag -d v1.0 #タグを消す $ git tag #タグの一覧を表示する $ git show v1.0 #v1.0の詳細を見る $ git reset --hard #v1.0に戻る
alias
gitのコマンドをalias登録することができます
$ git config --global alias.co checkout $ git config --global alias.st status $ git config --global alias.br branch
共有リポジトリ
ポイント
- 共有リポジトリでは作業は行わない。
- remoteを設定するまえにまず git initを実行する
- 共有リポジトリにpushしたりpullしたりするにはremote addを実行しておく必要がある
$ git init --bare #共有リポジトリにする。共有リポジトリにしたいディレクトリに移動してから行う Initialized empty Git repository in $ git remote add remotename <path or url> #リモートリポジトリに設定する $ git remote rm remotename #登録されているリモートを消す $ git remote #登録されているリポジトリの確認(名前のみ) $ git remote -v #登録されているリポジトリの確認(名前とパス) $ git clone remoterepositorypath hogedirectory #クローンを作成する。リモートの情報もひきつがれる $ git push remotename master #共有リポジトリにプッシュする $ git pull remotename master #共有リポジトリからひっぱってくる
gitのメッセージ
gitをおぼえたてだとでてくるメッセージがそもそもエラーなのかただのメッセージなのかよくわからないことがあります。gitのメッセージを書いておこうかと思います。
なにも変更していないのにcommitしようとすると以下のメッセージがあらわれます。
# On branch master nothing to commit (working directory clean)
その他知っておくとよいこと
git addのオプションについて以下のサイトが参考になりました。
git add -u と git add -A と git add . の違い | note.nkmk.me
まとめ
Gitの操作はadd, commit, push, pullのサイクル。リモートにアップロードしたりダウンロードしたりする。以上です。
コメント