FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Gitの主要コマンド

Vanです。

引き続き勉強会で学んだことを紹介します。

今回はLuiさんの調べたGitの主要コマンドです。


コマンド

解説・詳細

git config --global user.name "<ユーザ名>"

git config --global user.email "<メールアドレス>"

設定

git config --global color.ui auto

git config --global alias.co checkout

gitの出力をカラーリング

エイリアス設定(checkoutをcoに)

git branch <NAME>

git checkout -b <新ブランチ名>

git branch -d <ブランチ名>

ブランチ作成

ブランチの作成とチェックアウトをまとめて行う

ブランチ削除

git remote add <NAME> <URL>

リモート化・・・インデックス(ファイルの変更点などのリスト?)をGitHubに作成

リモートリポジトリのアドレスを名前付け(普通は<NAME>はorigin)

git status : 確認

git add -A : 追加削除情報をインデックス登録

git commit -m "add event" : コメント

git push -u <リポジトリ名> <ブランチ名> : 反映

git status : 確認

git add -A : 追加削除情報をインデックス登録

git commit -m "add event" : コメント

git push -u <リポジトリ名:origin> <ブランチ名> : 反映

クローンしたリポジトリでは、pushのパラメータのorigin masterは省略可

プッシュやプルは実行時にリモートリポジトリ名を省略すると、originという名前のリモートリポジトリを使用

git log

git log --graph --oneline

git log --decorate

リポジトリの変更履歴を表示

可視化

タグ情報も見れる

stash

まだコミットしてないファイルがインデックスやワークツリーに残したまま他ブランチへチェックアウトすると、その変更内容は元のブランチから移動先のブランチに対して移動する。

移動先のブランチで同じファイルが既に変更されている場合チェックアウトに失敗。

このような場合は、変更内容を一度コミットするかstashで一時的に変更内容を退避させてからチェックアウトしなければならない

退避させた変更は後から取り出して、元のブランチや別のブランチに反映可

rebase

merge : 変更内容の履歴はそのまま残るが、履歴が複雑になる

rebase : 履歴は単純になるが、元のコミットから変更内容が変更される(元のコミットを動かない状態にしてしまうことがある)

rebaseしただけだとmasterの先頭の位置はそのままなので、masterブランチからNEWブランチをマージして、NEWの先頭まで移動

(例:統合ブランチにトピックブランチを取り込む場合は、まずrebaseしてからmerge)

rebaseにiオプションを指定すると、コミットの書き換え、入れ替え、削除、統合を行うことができる

→ pushする前にコミットコメントをきれいに書きなおす、意味的に同じ内容のコミットをわかりやすいように一つにまとめる、コミット漏れしたファイルを後から追加する

git fetch

pullを実行するとリモートリポジトリの内容のマージが自動的に行われる。(pull = fetch + merge)

単にリモートリポジトリの内容を確認したい場合はfetch

取得したコミットは名前の無いブランチとして取り込まれ、FETCH_HEADという名前でチェックアウト

git tag <tagname>

git tag -am "注釈" <tagname>

git tag -d <tagname>

タグ名を指定してcheckoutしたり「コミットの書き換え」で説明するresetをすることで、簡単に過去の特定の状態に戻せる

-aで注釈つきタグ、-mでコメント

タグ削除

git commit --amend

指定してコミットを行うと、同じブランチの直前のコミットに対して内容を追加やコメントの修正

git revert HEAD

指定したコミットの内容を打ち消すコミットを作り出す。rebase -iやresetによるコミット削除は、そのコミットが既に公開済みだと削除できない。

reset

要らなくなったコミットを捨てる

モード名

soft ・・・ HEAD位置変更する + インデックス変更しない + ワークツリー変更しない → コミットだけを無かったことにする

mixed ・・・ HEAD位置変更する + インデックス変更する + ワークツリー変更しない → 変更したインデックスの状態を元に戻す

hard ・・・ HEAD位置変更する + インデックス変更する + ワークツリー変更する → 最近のコミットを完全に無かったことにする

cherry-pick

cherry-pickでは、別のブランチから指定したコミットをコピーして、現在のブランチに取り込む

(ブランチを間違えて追加したコミットを正しい場所に移す、別ブランチのコミットを現在のブランチにも追加する)

squash

このオプションを指定してブランチをマージすると、そのブランチのコミット全てをまとめたコミットが追加される

rm -rf ディレクトリ名

gitディレクトリごと削除

git pull origin develop

developブランチのものを取ってくる(pull = fetch + merge)

git add -A

1.Xと2.Xの違い

(1.X)

git add . と git add -u を足したもの(削除と追加ファイル全部反映)

git add . ・・・ ワーキングツリーに新規作成、あるいは変更されたファイル対象(削除されたファイルはaddされない)

git add -u ・・・ 一つ前と最新のステージを比較して、変更があった部分のみをadd(新しく作られたファイルはaddされない)


(2.X)

git add -A : ツリー全体を対象とする

git add . : カレントディレクトリ以下のツリーを対象とする


Git 1.x では対象に削除されたファイルを含むかが違い、Git 2.0からはその違いはない。

git checkout master

git merge(rebase) develop

git add myfile.txt(競合修正後)

git rebase --continue

まず取り込み先の別のブランチに移動

developブランチの内容を持ってくる(競合しなければdevelopにブランチ切り替わって統合)

rebaseの場合、競合箇所を修正した後はコミットではなくrebaseコマンドに --continue オプションを指定実行。もしrebase自体を取り消す場合は --abort オプションを指定

最後にgit push origin master

git checkout .

git reset --hard HEAD~

変更を打ち消す

マージを取り消し



今回は初心者の自分にもわかりやすい内容ですね。

今回の勉強会で学んだことの紹介は以上です。

また次回の勉強会をお楽しみに(?)

スポンサーサイト

非公開コメント

プロフィール

Luftelli

Author:Luftelli
ゲーム開発を行なっている4人のチームLuftelliです。
今はデジゲー博2018に向けて、対戦型シューティングゲーム「LightningGravity」を制作しています。

チーム連絡先: Twitter, メール

メンバー
・Cinc: リーダー、プログラム担当
 個人連絡先: Twitter, メール
・S丼: デザイン・素材管理、GUI・2Dグラフィック担当
・Lui: 広報、音楽・BGM担当
・Van: エフェクト・3Dモデル担当

最新記事
最新コメント
月別アーカイブ
カテゴリ
FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。