基本的なPull
RemoteからClone
git clone リポジトリ名
Remoteブランチを見てみる
git branch -a
masterに作業したいBranchをマージ
git merge 対象のブランチ名
例
自身が今masterブランチに居るとする。
git merge remotes/origin/maininput
これでローカルのマスターブランチにremotes/remotes/origin/maininputがmergeされる
作業が終わったら、同じBranchにプッシュ
git push origin 元となるローカルのブランチ:対象となるリモートのブランチ
例
git push origin master:maininput
ローカルのmasterブランチの内容をリモートのmaininputにpushする。
基本的なPush
作業がひと段落したら
git add .
これで現在作業している内容をステージングできる
コミットと同時にコメント
git commit -m “コメントメッセージ”
-m “”でコミットと同時にコメントができる。
-mが無いとvimのEditerで作業することになり、めんどくさい。
vimでやる場合は、下記。
aで編集開始
escで編集終了
:でコマンド受付。
wqで保存
コミットを訂正したい場合
git add . で変更ファイルを追加して
git commit –amend “コメントメッセージ”
基本的なreset
git reset –hard HEAD^
で直前のコミットに移動
–hardはコミットと一緒にフォルダの中身のリセットする。
–softはコミットの内容だけリセットする。
基本的な業務の流れ(ローカルにリポジトリがある場合)
RemoteからFetchする
git fetch
origin/developのlogを見てみる
git log –oneline origin/develop
自分の好きな名前でブランチを切りつつ、developをコピーする
git checkout -b 好きなブランチ名 origin/develop
適宜add と commitをする
git add . ←変更履歴をすべてステージング
git commit -m “コミットメッセージを入れる”←ステージングにあるファイルをコミット
git commit –amend ←前回のコミットをやり直し
作業が終わったら、リモートにPushする
git push origin HEAD
これで現在作業中のブランチのHEADをgithubにpushする。
githubでプルリクを作成する
gitで現在追加されているCacheファイルを取り除く
.gitignoreにファイルを追加したので、キャッシュから取り除きたい場合
git rm -r –cached . で一度ローカルリポジトリにあるキャッシュファイルを取り除く。
git add .
で再度追加する。
するとgitignoreが追加される
リモートリポジトリが増えてきたから消したい
git push –delete origin [ブランチ名]
rejectされた
git fetchして
git mergeする
コミットの粒度は?
コミットはできる限り細かくする。
何故なら、コミットメッセージとともに、コードのどの部分が変更されたかがわかるから。
明日の自分は他人なので、できる限り細かくコミットして、そのコミットで何がされたのか分かるようにしておく
branchを切る粒度は?
これも割と細かく切る。
機能ごとに切ってもいいし、実装ごとに切ってもいい。
ただbranchは消耗品なので、mergeしたらすぐに消すようにする。
add とか commitと打つのがだるい
エイリアスを使う。
git config –global alias.cm commit
って感じ
次回からgit cm -m “コミットメッセージ”が使えるようになる。
コードの差分を見たい
git diffで見れる
.gitignoreの書き方
- 【ファイル名】⇒全サブディレクトリ下にあるファイルorディレクトリを無視
bin ⇒binファイルもbinディレクトリも無視 - 【/ファイル名】⇒.gitignoreを置いているフォルダをカレントディレクトリとしたうえで、相対的なファイルorディレクトリを無視
/bin ⇒ .gitignore直下のbinフォルダだけ無視 - 【ファイル名/】⇒末尾に/を付けることで、フォルダ全部指定になる。
/ファイル名/として、直下だけの無視もできるし、ファイル名/で全ディレクトリを無視もできる。
ワイルドカード
- 【*】は/以外の0文字以上の文字
- 【?】は/以外の1文字
- 【[0-9]】で、/以外の0から9の数字
- 【】0個以上のファイル or ディレクトリ ⇒/a/ は/a/b/も /a/b/cも対象
⇒/a/**/b/は/a/c/d/bも/a/c/bも対象
例
特定の拡張子を無視したい
*.cache
配下のcacheとつくファイルを追跡から除外
特定のディレクトリを無視
bin/
obj/
全ディレクトリのbinフォルダとobjフォルダを追跡から除外
コンフリクトが発生したから一旦もとに戻したい
git merge –abort
コンフリクトや無駄なコミットを増やさないために
とりあえず下記のファイルは追跡から除外
- *.pdb
- *.cache
- bin/
- obj/
日本語化したい(文字化けを直す)
.git\configの中の[core]に下記のように追記する。
[core]
pager = less -cm
quotepath = false
またgit bash、windowsコマンドプロンプト、PowerShellでの文字化けを修正したいときは文字コードをja_JP.UTF-8にする。
PowerShell
Set-Item env:LANG -Value ja_JP.UTF-8
コマンドプロンプト
set LANG=ja_JP.UTF-8
git bash
export LANG=ja_JP.UTF-8
コメント