にわかGitユーザが日々躓いたことを書いていくためのメモ(になる予定)
ユーザ名とメールアドレスを設定する
git config --global user.name "rsooo"
git config --global user.email "rsooo@hogehoge.com"
まず最初にこれをやる。
addしたファイルを取り消したい。
git reset <filename>
でOK。
Gitで管理していたファイルを.gitignoreで除外したい/除外したいファイルを間違えてaddしていて、除外させたい
git rm -- cached $file
で一度ファイルを除外してやればOK
意図しないファイルがgit管理下に入ってしまったことでpull したときに "The following untracked working tree files would be overwritten by merge:"とか言われたりする。
まだcommitされていない編集を無かったことにしてHEADに戻したい
git reset --hard HEAD^
上記は編集内容が取り消されるが、
単純にaddを取り消したい時は、以下のコマンドでOK
git reset [HEAD]
リモートのpush先を追加/参照したい
git remote -v
git add heroku git@XXXX.git
リモートのpush先の追加は、herokuはgithubにpushしたい時によく使う。
push先を追加しておけば、以下のようにpushできる。
git push heroku master
編集内容を一時的に退避させたい/戻すには
git stash
現状の変更内容が退避され、HEADの状態に戻る
stashした情報を確認、戻すには
git stash list
git stash apply "ID"
git stash pop "ID"
stash popするとstashした情報は削除される。
リモートブランチの変更を取得したい
git fetch
git branch -a
git fetch
でリモートブランチの状況を反映し、
git branch -a
でリモートブランチの内容も含めて確認できる。
git fetch と git pull ってどう違うの?
git pull
は git fetch
してから git merge origin master
と同じ。
自分のローカルブランチをリモートのmasterにpushしたい
git push origin local_branch:master
上記のコマンドで自分のローカルブランチ"local_branch" の内容をリモートのmaster に対してpushできる。
一つ前のコミットを見たいとき
git show HEAD~
HEADが今いるブランチの最新のコミットを指す。
HEAD~ がそれよりひとつ前のコミット。 HEAD~~ なら2つ前。
コミットを取り消したい
コミットのみを取り消して、ワーキングディレクトリの修正点は残したい場合、
git reset --soft HEAD^
ワーキングディレクトリごと戻したい場合、
git reset --hard HEAD^
異なるブランチ名でpushしたい
以下の書式で可能
git push #{remote_name} #{local_branch}:#{remote_branch}
リモートブランチをローカルブランチとしてチェックアウトする
git checkout -b local-branch-name origin/remote-branch
ブランチの削除
git branch -d local-branch-name