最近gitで詰まったり こんな時どうするんだ??
ってなる事が結構あるので、学んだ事をまとめていきます。
git 作業場所について
.git があるところがgitから管理できる
gitの状態表示のためのコマンド
過去のコミット履歴を一行で表示する
git log --oneline
commitしてないファイルを確認
git status
git checkout -- index.html git add の後に戻れる
git diffまとめ
addする前のファイルと後のファイルを比較する
git diff
commit する前と比較
git diff --cached
リモートレポジトリのマスターと比較するときには?
まずは
git fetch origin master
git diff origin/master
git rm inde.html 削除
git mv index.html 移動
vim .gitignore
*.logとか *.pngとか みたいな感じで書ける
##直前のcommitを変更する。
一つ前のcommit に追加するには
git commit --amend
git reset
オプションには大きく分けて3種類存在する
--soft
ファイルに対して変更を加えない
--mixed
TODO 後で調べる
--hard
ファイルに対して変更を加える
git reset 基本的な使い方
git reset HEAD(最新のコミット)
git reset HEAD^
特定のコミットに戻る
git reset (commitのハッシュ値)
##git branch
git branch hoge 新しいbranchを作れる。
*がついてる所に今 自分はいますよっと
git checkout ブランチ名
git merge hoge(ブランチ名) 混ぜる(笑)
git branch -d hogebranch ブランチをmergeした後は消していいので branchを消す時のコマンド
branchの衝突の解消
git checkout -b dokodoko branchを作って移動
git statusでなおせメッセージがでる
普通に画面が出るのでそこを手動で削除できる。
##gitのタグ(あんま使わない)
git tag hogehoge
git show hogehoge
git tag v0.1 nvejfnnvjnf
git tag -d v0.9 (タグを消す)
gitでやらかした時
###git reset --hardしてしまった!!
イライラしてついやってしまう時ありますよね(ねええよ)
git reflogというコマンドがあります。
このコマンドは名前の通りlogを出力してくれるのですが、レポジトリのログではなく
コミットへのログを出力してくれます。
ですので 自分が間違って打ってしまった reset --hardをreset --hardしなくてはいけません(錯乱)
念の為に
git reflogで幾つ前に戻すのか見てから
git reset --hard "HEAD@{x}"ですね
大体
git reset --hard "HEAD@{1}です
##git エイリアス
git config --global alias.co checkout
git config --global alias.st status
git config --global alias.br branch
git config --global alias.cm commit
##github
git init --bare
A
B
git romete add orgin ~/どこどこ.git
git remote rm どこどこ
git push origin master
git pull origin master 変更をとってきて保存する。
addとcommitを同時にする
git cm -am "test commit"
共有場所でconflictしたら
mergeの時と同じ感じでやればok
githubでpush先でミスったらこの辺が参考になります