●gitをダウンロードした後に、下記設定をする
git config --global user.name [username]
git config --global user.email [mailaddress]
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
●ローカルリポジトリには三つのエリアがある
・ワークツリー
↓add
・ステージ
↓commit
・ローカルリポジトリ
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
●ローカルリポジトリの新規作成
cd [path]
git init
●リモートリポジトリからローカルに落とす
例えば
git clone "https://github.com/atom/atom"
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
●ステージに追加する(=次回のコミット対象に追加する)
git add [file name]
git add [directory name]
全てのファイル変更をステージする
git add .
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
コミットする
git commit
・オプション
[-m]editorを立ち上げず、直接メッセージ付きで変更する
[-v]変更箇所を表示させる
コメント追記のルール
一行目:変更箇所
三行目:変更の目的
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
●git status
・ワークツリーからステージ間の変更(ファイル新規、変更、削除)を表示させる
・ステージからローカルリポジトリ間の変更を表示させる
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
●git diff(git addとgit commitする前にやる)
・git addする前の変更差分(ファイル変更、削除)(ワークツリーとステージの間)
git diff
git diff [ファイル名]
※新規のファイルは比較対象外
・git addした後の変更差分(ステージとローカルリポジトリの間)
git diff --staged
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
リポジトリにコミットした履歴を表示させる
●git log
・オプション
[--oneline] 一行だけを表示させる
[-n 3] 最新の3世代を表示させる
[-p] 変更詳細を表示させる
[ファイル名] 指定のファイルだけを表示させる
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
●管理したくないファイルをgitから除外する
.gitignore というファイルで管理する(直接ファイル名を指定)
windowsでは「.gitignore」を作れないので、「.gitignore.」を作る
※コミットするまで除外できる
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
●git rm
コミットしたファイルを管理から外す
・ファイルも一緒に削除する
git rm [file name]
git rm -r [directory name]
・ファイルを残し、管理だけを外すとき
git rm --cached [file name]
あと、.gitignoreに追加する必要がある
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
●git mv
・改名
git mv [旧ファイル名] [新ファイル名]
・移動
git mv [ファイル名] [パス]
相対パスも絶対パスもOK
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
●コマンドに別名をつける
git config --global alias.[別名] [コマンド名]
例えば:
git config --global alias.ci commit
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
●ワークツリーの変更を取り消し
git checkout [--file name] ステージの状態に戻す
●ステージした変更を取り消す
git reset HEAD [--file name] コミットしたブランチの状態に戻す
●直前のコミットをやり直す(ローカルリポジトリ限定)
ファイル変更、ステージした後に、下記コマンドを実行
git commit --amend
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
●プッシュ
まず、リモートリポジトリ新規作成
git remote add origin https://github.com/xiewenna123/intro_repo.git
※origin:リモートリポジトリ名、自分で定義する
https://github.com/xiewenna123/intro_repo.git リポジトリ
あと、リモートリポジトリのマスタにプッシュ
git push origin master
もし、branch_aにプッシュする場合:
git push origin branch_a
git push [リポジトリ名][ブランチ名]
●git remote
リモート名一覧を表示する
●git remote -v
リモートリポジトリも表示したい時
●git remote show [リポジトリ名]
より詳細のリポジトリ情報を取得できる
●git remote rename [旧リポジトリ名] [新リポジトリ名]
●git remote rm [リポジトリ名]
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
リモートリポジトリからローカルに情報を反映させたい方法二つある
●フェッチする
①git fetch [リポジトリ名] リモートリポジトリの情報をダウンロードする
②git branch -a ブランチ名リストを表示
③git checkout [branch name] ブランチを切り替える(このステップはやらなくてもいい)
④git merge [リポジトリ名]/[ブランチ名] 指定したブランチと現在にいるブランチと統合させる
●プルする(上記の①+④と同じ意味)
git pull [リポジトリ名][ブランチ名]
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
●github workflow
①ローカルリポジトリに新しいブランチを作成し、チェックアウトする。
git checkout -b new_branch
②資源を変更し、コミットする
git add [file_name]
git commit -v
③変更をプッシュする
git push [ローカルリポジトリ名] new_branch
④github画面でpull requestを新規し、レビューしてもらう
⑤github画面で「merge pull request」ボタンを押し、新ブランチを削除する
⑥ローカルの跡片付け処理をする
git checkout master
git pull origin master
git branch -d new_branch
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
●git tag
すぐ切り戻しできるようにに、重要なコミットの後に付く(よくリリース時に使う)
git tag -a "tag name" -m "comment message"
タグ一覧を表示させる:
git tag
タグの詳細を表示させる
git show [tag_name]
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
●stash(一時退避する)
・作成(現在ワークツリーとステージにある変更ファイルを一時避難する、つまり、変更を隠すこと)
git stash
・一覧
git stash list
・復元
git stash apply
ステージの内容も復元する
git stash apply --index
特定のstashを復元する
git stash apply [stash name]
・削除
git stash drop
特定のstashを削除する
git stash delete [stash name]
全部削除
git stash clear