Gitを学ぶ 〜後編〜
前回に引き続き、クスールさんのGit勉強会後編です。
コンフリクトに対応する
共有ディレクトリをクローンする。
$ git clone [URL]
コンフリクトを起こすために一旦、ローカルリポジトリにコミットする。
$ git add [ファイル名]
リモートリポジトリの同じファイルを講師の方が編集、コミット、プッシュする。
※これでコンフリクトが発生する。
ローカルリポジトリをプッシュする。
$ git push
するとリジェクトが発生します。
To http://.../....git ! [rejected] master -> master (fetch first) error: failed to push some refs to 'http://.../....git' hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first integrate the remote changes hint: (e.g., 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.
ローカルのリポジトリをリモートの最新で更新する。
$ git pull
更新した際、コンフリクトが発生した場合、以下のように挿入される。
<<<<<<< HEAD 自分の変更箇所 ======= 既にPUSHされている変更箇所 >>>>>>> [コミットID]
これを適宜、修正してコミットしてプッシュすればOK!
ブランチ
現在のブランチを見る
$ git branch
新規のブランチを作る
$ git branch [ブランチ名]
git branch で確認する
$ git branch * master [ブランチ名]
作ったブランチに切り替える
$ git checkout [ブランチ名]
こんな感じに表示される
Switched to branch '[ブランチ名]' $ git branch master * [ブランチ名]
リモートブランチにプッシュする場合は
$ git push origin [リモートでのブランチ名]
リモートリポジトリから変更を取得するが、マージしない。
$ git fetch
※pullはfetch+mergeのようなもの(同じではない)
マージする。
$ git checkout [マージ先] $ git merge [マージ元]
マージする時は作業ブランチにmasterブランチの変更を取り込んで、
確認してからマージするのがオススメ!
(ローカル)ブランチを削除
$ git branch -d [ブランチ名]
(リモート)ブランチを削除
git push --delete origin [リモートブランチ名]
Tips
コミットの修正(プッシュ前)
直前のコミットコメントを修正する
$ git commit --amend
※デフォルトのエディタが開くので修正、上書きすればOK
直前のコミット漏れがあった場合に追加する
$ git commit --amend [ファイル名]
コミットを打ち消す
$ git revert [コミットID]
色々なかった事にする!!
reflogで作業履歴を確認する。
$ git reflog f015603 HEAD@{0}: revert: Revert "追加した!" e866524 HEAD@{1}: commit: 追加した! 88cd3af HEAD@{2}: commit (amend): 修正完了 4e75819 HEAD@{3}: commit (amend): 修正完了 9cfcd32 HEAD@{4}: reset: moving to HEAD^ 70b81c8 HEAD@{5}: commit: mend 9cfcd32 HEAD@{6}: commit: 修正かんりょう
resetでhardオプションを指定して過去に戻る
git reset --hard HEAD@{2}
対象外のファイルを指定
ルートディレクトリに .gitignore
ファイルを作成して、指定する。
# hoge.txt ファイルを対象外にする場合 hoge.txt # hoge ディレクトリを対象外にする場合 /hoge
ちなみに各言語などで標準的な.gitignoreはgithubで公開されてます。
先生の秘伝のタレ
https://gist.github.com…
プライベートになってるので興味のある方は参加してみて下さい( ´ ▽ ` )ノ
Gitは必要不可欠だし、もう少し理解を深めたら、会社で勉強会開催してみようかな。
- 出版社/メーカー: 技術評論社
- 発売日: 2015/05/18
- メディア: 雑誌
- この商品を含むブログ (2件) を見る
- 作者: 岡本隆史,武田健太郎,相良幸範
- 出版社/メーカー: 技術評論社
- 発売日: 2012/07/10
- メディア: 単行本(ソフトカバー)
- 購入: 7人 クリック: 103回
- この商品を含むブログ (26件) を見る
[PR]クスールさんの勉強会