GitHubへのプッシュとその周辺
githubにプッシュするまでの流れ辺りをいい加減覚えたい
まずはGithubでリポジトリを新規作成し、URLを取得する
Gitで有効になっている設定を確認し、編集する
Gitには3種類の設定が存在する。
名称 | 内容 |
---|---|
system | Gitシステム全体の設定 |
global | 対象となるユーザの設定(ユーザ名、メールアドレス) |
local | ローカルリポジトリ毎の設定 |
設定を確認するためには以下のようなコマンドを用いる
% git config --list % git config --global --list # global 設定のみを参照 % git config --local --list # local 設定のみを参照
まずはglobalの設定を行っておく
% git config --global user.name "ユーザ名" % git config --global user.email "メールアドレス"
ローカルリポジトリ編
% cd [対象ディレクトリ]
% git init
ファイルをコミット待ち状態にする
git add -A と git add . と git add -u の違い - Qiita
% git add [ファイル名] # 対象のファイルをaddする % git add . # 削除されていない部分を全てaddする % git add -u # 変更があった部分のみをaddする % git add -A # . OR -u で対象となる全てをaddする
ファイルをコミットする
% git commit -m "コメント"
ログを確認する
% git log
リモートリポジトリ編
ファイルがコミットできたら、Githubにプッシュする
まずはプッシュ先のURLを指定する(local設定ファイルに書き込まれるので、一度だけで良い)
% git remote add origin [URL]
プッシュする
% git push -u origin master
GitHubのコミット履歴に意図しない表示があるとき
違う環境からプッシュしようとしたり、最初のglobal設定を忘れていると、
commited with 名前
みたいな感じで本名が表示されたりすることがある
これはPCのアカウントをそのまま引っ張ってしまうことで発生する(MacOS限定の話?)
これはセキュリティ的によろしくない
(とは言っても、Gitというのは履歴を残すためのものなので、ある意味で間違いでは無い)
大量のコミット書き換えはgit filter-branch
コマンドで行う
git filter-branch -f --commit-filter ' GIT_AUTHOR_NAME=[名前]; GIT_AUTHOR_EMAIL=[メールアドレス]; GIT_COMMITTER_NAME=[名前]; GIT_COMMITTER_EMAIL=[メールアドレス]; git commit-tree "$@"; ' HEAD
Author と Commiter の2種類が存在し、これらに齟齬があるときに上記のような事象が生じる
そのため、どちらも一括で書き換えてしまう
これをプッシュしてGitHubに反映させる
% git push -f -u origin master