入門git
基本操作
Git リポジトリを新たに作成する
git init
新規プロジェクト作成の時に使います。
リモートリポジトリの追加
git remote add origin git@hoge.github.com:hogehoge/hoge.git
既存のリポジトリのクローン
git clone git@hoge.github.com:hogehoge/hoge.git
現在の編集状況等と確認
git status
編集したファイルを追加
git add -A
- 'git add -A' = 'git add .' + 'git add -u'である。
- 'git add .' = ワーキングツリーに作成, 変更されたファイルをadd
- 'git add -u' = 一つ前と最新のステージを比較して、add
作業ツリーと最新のコミットの差分を確認
git diff HEAD
コミット(メッセージ付き)
git commit -m"hogehoge"
gitリポジトリにpush
git push -u origin master
gitのoriginというリモートリポジトリのmasterブランチにプシュするよ
リモートリポジトリの最新をローカルに反映
git fetch git merge origin/master
ブランチで作業を行う
今いるブランチを確認
git branch
"feature-A"のブランチを作成して移動
git checkout -b feature-A
- feature-Aで作業でごにょごにょ作業
- feature-Aでgit add -A
- feature-Aでgit commit -m"hoge"
masterの戻ってそっちが特に変更されていないか一応確認
git checkout master
一つ前のチェックアウトに戻る場合
- git checkout -
マージを行う(feature-Aをmasterにmerge)
git merge --no-ff feature-A
マージした結果を確認
git log --graph
もしコンフリクトが起きたら
Auto-merging fix-b CONFLICT (content): Merge conflict in fix-b Automatic merge failed; fix conflicts and then commit the result.
masterで対象のファイルを開き、編集をしてgit add ,commitすればOK
local変更を破棄
git reset --hard HEAD
過去のcommitの時点に戻る
git reset --hard ハッシュ値
ハッシュ値は、git logでコミット履歴がみれるのでそこから戻りたいコミットを指定。
fork、そしてpull request
誰かのGitHubのリポジトリをforkします。
リポジトリ名は適当に変更。
自分のリポジトリにforkしてきたら、ローカルにcloneする
git clone git@hoge.git
ローカルで作業します。
- 作業用にさらに別のブランチ(prototypeなどの名前にしておく)を作る事。修正したり何度もcommitしたり、最初からやり直したりするので。
そのための作業用ブランチを別に切っておく
git push origin prototype
fork元の更新に追随します(別途)
GitHubにブランチをpushします。
GitHubからpull requestを送ります。
絶対にmasterブランチで作業は駄目!
masterブランチからpull requestを送るのも駄目!
その他の作業
直前のコミットメッセージを変更したい
git commit --amend
簡単な編集、そしてコミットを同時に実行する
git commit -am"hogehoge"
- add と commit を同時に実行している。
ファイルを追加した場合は使えないのであしからず
ファイルの差分も一緒に表示
git log -p
commitを一つにまとめてと言われた場合
//一つ前のcommitとまとめる git rebase -i HEAD~~ //編集画面になったら、他の纏めたいcommitの「pick」 を 「s」 に変えて保存
- sourcetreeの使い方 コミット時に「オプションのコミット」で一つ前のコミットとまとめる事が出来る
rebaseは使わない(もうちょっとgitを理解してから使おう)
【git】分かりやすく!mergeは「合流」、rebaseは「付け替え」! | NullNote
Git pullを使うべきでない3つの理由 · DQNEO起業日記