14
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Gitのまとめ

Last updated at Posted at 2016-02-19

僕はオツムが弱いので基本的なことだけどメモしておく。

Gitの概念

とりあえず三つある
1, 作業ディレクトリ
2, インデックス
3, リポジトリ(ローカル、リモート)
この三つの場所で色々やる。最終的にはリポジトリ内にファイルを保存することになる。

コマンド

設定

git config -l
gitの設定を確認
git config --global ******
gitの設定
ex) user.name, user.email, color.ui
git config --global alias.略語 [command]
gitコマンドのエイリアスを設定する。
ex) git config --global alias.m merge
git config --help
git設定のhelpを表示

ファイル操作

git init
今いる作業dirでgit使うよーっていう宣言
git add [file]
作業dir内の[file]をインデックスに追加。[file]を.(ピリオド)にすればカレントdir内全部のファイルを指定することになる
*addしたくないファイル(.logファイル等)を指定するには、vim .gitignoreでignore用のファイルを作成・展開し、その中で無視したいファイル名を指定する
git commit
インデックス内のファイルをローカルリポジトリにコミット。
option
-a: 変更されたファイルを自動的に感知し、addからコミットまで全部やってくれる。
-m: メッセージを指定してコミットできる。-mなしだとvimが立ち上がって書く事になる。
--amend: 直前のコミットを変更する。コミットログを無駄に増やしたくない時等に使える。
git log
コミット履歴(コミットID,製作者,日付,メッセージ)を表示
option
--oneline: 簡易的な履歴(ID上7桁,メッセージ)を表示。
--stat: どのファイルが何箇所変更したかも表示。
-p: 変更された箇所も表示。
git status
変更されたファイルの一覧表示
option
-s: 説明文を非表示。
-d: 説明文を非表示。ブランチ名は表示。
git checkout -- [file]
作業dir内では変更したが、まだインデックスには保存していない[file]を変更前に戻す
git diff
作業dir内とインデックス内の違いを表示
option
--cached: インデックス内とローカルリポジトリ内の違いを表示。
git rm/mv [file]
普通にrm,mvしちゃうとgitが混乱するから、一度git initした作業dir内ではこのコマンドを使ってファイル操作しなければならない
git reset [target] [version]
[target]を部分を[version]まで戻す
[target]
--soft: ローカルリポジトリ内のみ。
(no option): ローカルリポジトリ内とインデックス内。
--hard: 全部(LocalRepoもIndexもWorkingDirも)
[version]
ID: コミットIDで指定。最低上7桁を含む。
HEAD: 直前のコミット内容を指定。
HEAD^: HEADの更に一つ前。
ORIG_HEAD: 直前にresetしたコミットを指定。間違えてresetした時等に利用。
git tag [tag] [commitID]
[commitID]で指定したコミットに[tag]を付けることが出来る。
IDを指定しなかった場合、直近のコミット(HEAD)を指定することになる
git tag
タグの一覧を表示する
option
-d [tag]: [tag]を削除する
git show [tag]
[tag]コミットの詳細を表示する。[tag]はIDでも可

ブランチ

git branch
今あるブランチを確認(デフォルトでmaster)
git branch [branch]
[branch]を作成
option
-d: [branch]を削除。
git checkout [branch]
[branch]へ移動
optional
-b [branch]: [branch]を作成し、移動。
git merge [branch]
[branch]をカレントブランチへmerge(混ぜる)

共有リポジトリ

共有リポジトリを作る時はディレクトリ名の最後に.gitを付けるのが鉄則。

git init --bare
共有リポジトリのgit宣言をする時はoptionとして--bareを付ける
git remote
別のリポジトリを操作する際に使用するコマンド
オプションとして-vを付けるとリモートリポジトリの詳細を表示する
git remote add [repository] [position]
リモートリポジトリ[repository]を生成する。[position]で指定したディレクトリを参照する。URL([position])さえ覚えておけばやる必要は無いが、普通やる
ex) git remote add origin https://github.com/hogehoge/gitTest.git
*リポジトリのURLを間違えたりすると設定したremoteを取り消したくなる。
git remote -v: 設定したリモートを確認
git remote rm [repository]: 指定したremote設定を削除
で取り消すことができる。
git remote rm [repository]
リモートリポジトリ[repository]を削除する
git push [repository] master
リモートリポジトリ[repository]にローカルリポジトリの内容をプッシュする。ローカルのmasterブランチをリモートのmasterブランチに反映させている
git clone [remoteRepository] [workingDir]
[remoteRepository]の中身を新たな作業dir[workingDir]として複製する。
リモートリポジトリへのリンクもそのまま引き継ぐ
ex) git clone ~/origDir/ cloneDir
git fetch
リモートリポジトリの内容をリモート追跡ブランチにコピーする
git pull [remoteRepository] master
[remoteRepository]のブランチmasterからプル(プッシュの逆)。fetchとmergeを組み合わせた様なもの
git fetch
git merge origin/master
と同じ

注意点

mergeやpushをする時は他の人が同箇所を変更している等で、conflictがよく発生する。
pull, fetch, rebaseを使ってなんとかしよう。

参考URL

・サルでも分かるgit入門:
http://www.backlog.jp/git-guide/
・git pullの解説:
http://kray.jp/blog/git-pull-rebase/
・pushがrejectされた時の対処:
https://www.softel.co.jp/blogs/tech/archives/3569
・push, origin, masterとはなんぞや:
http://dqn.sakusakutto.jp/2011/10/git_push_origin_master.html

14
12
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
14
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?