Git

チーム開発でのGitHubの流れ

先月から、フィヨルドブートキャンプでチーム開発に入らせてもらった。 これまでの課題も GitHub 上の自分のリポジトリに PR を作ってレビューしてもらっていたので、GitHub には慣れているつもりだったが、最初は戸惑うところがあったのでメモしておく。 チ…

Git status をいろいろ見てみる

Git

Git の記事をたくさん書いたが、一番使うといっても過言でないくらいの git status を忘れていた。 ドキュメントによると、git status は、ワークツリーの状態を見るコマンド。現在のブランチも確認できる。 git-status - Show the working tree status Git …

Git reset で HEAD位置を変えないとき

Git

git resetは、HEADを戻すコマンド。だが、インデックスの削除など HEAD を戻す以外の使い方もあり、混乱したのでまとめておく。 $ git reset <オプション> <コミット> コミットは、コミットのハッシュのほか、HEAD やブランチ名などで指定する。指定しなかっ…

Git インデックスと reset --soft / (--mixed) / --hard を理解する

Git

8月22日のオンラインLT会 で発表した git reset について。LTでは時間の関係上削除した部分もあるので、そこも含めて書いてみる。 speakerdeck.com git reset git resetは、HEADを戻すコマンド。コミットやインデックス、ワークツリーのデータを消すことがで…

Git HEAD~ と HEAD^ の違い

Git

Git でコミットを指定するとき、HEADの一つ前ならHEAD^、二つ前ならHEAD^^のようにしていた。一方、Git の公式ドキュメントを見ていたら、HEAD~やHEAD~2が使われていた。 ただ書き方が違うだけで同じものだと前にどこかで読んだので特に気にしていなかったの…

Git checkout と switch / restore

Git

ブランチを切り替えるときに必ず使う git checkout。リセットっぽい機能もあったりしてちょっととっつきにくい。 そんなcheckout、いずれ使わなくなるかも?? 2019年8月(バージョン2.23)、checkout の機能を2つに分けた switch と restore が実験的なコマ…

Git エイリアスで便利にする

Git

開発に欠かせないGit。プログラマは毎日使うのでエイリアスを設定している人が多いそうだ。alias とは「別名」という意味で、コマンドを別な文字で実行することができる。Git のサイトにも、"きにせずどんどん新しいエイリアスを作りましょう。" とあったの…

Git を1からやり直す(stash編)

Git

Gitを1からやり直す(目次) stash とは、「隠す」という意味。 作業中、まだコミットしていない状態で他のブランチで作業したいことがある。そういうとき、stashを使えば変更内容を一時的に退避させることができる。 コマンド 動作など git stash 作業ツリ…

Git チェリーピックとリベースの練習

Git

チェリーピックの後リベースしたらどうなるのか試してみた。 develop ブランチで作業中に、別な作業のために master から topic ブランチを切った topic ブランチでは、develop ブランチの変更(コミットC・D)をチェリーピックで取り込んでから、 1回コミッ…

GitHub プルリクエスト後に間違いに気づいたとき

1つのプルリクエストには、1つの意味だけを持たせるべきだ。 プルリクエストを作成後、今回のプルリクエストに関係のない修正が紛れ込んでいたことに気づいた。やるべきことは、ブランチを正しい状態にすること。 プルリクエストは GitHub上のリモートブラン…

Git 間違ってmasterにコミットした話

Git

またやってしまった。Git 難しいー 今学習の一環としてRailsでアプリを作っていて、機能を追加するにあたりブランチを切って作業しているつもりが master のままで、masterブランチにコミットしてしまった。 $ git reset --hard で作業ツリーをコミットと同…

Git を1からやり直す(目次)

Git

記事一覧とキーワード 基本編 add、commitなど リセット編 コミットの指定方法、amend、revert 編 ブランチ編 checkout、detached HEAD マージ編 3方向マージと早送りマージ リベース編 チェリーピック、パッチ リモート編 リモート追跡ブランチ、push、fetc…

Git を1からやり直す(タグ編)

Git

Gitを1からやり直す(目次) タグ コミットにはタグをつけることができる。 コマンド 動作など git tag タグの一覧をアルファベット順で表示 git tag タグ名 (コミット) HEADにタグ(軽量版)をつける(コミット指定可) git tag -a タグ名 -m "メッセージ…

Git を1からやり直す(revert編)

Git

Gitを1からやり直す(目次) revert revert は「戻る、復帰する」という意味。変更を打ち消すコミットを作る。 コマンド 動作など git revert コミット 指定したコミットの変更を打ち消すためのコミットを作る git revert --abort コンフリクト発生時、rever…

Git を1からやり直す(リモート編)

Git

Gitを1からやり直す(目次) リモートリポジトリ リモート追跡ブランチ フェッチ プル プルとリベース プル・リベース リモートリポジトリ リモートリポジトリは、GitHubのようなソースコード管理サービスやネットワーク上の共有ドライブなど、多くは自分の…

Git を1からやり直す(リベース編)

Git

Gitを1からやり直す(目次) この記事(リベース編)はすべてローカルの話。プル・リベースについては次の記事(Git を1からやり直す(リモート編))。 チェリーピック パッチとはコミット間の差 チェリーピックを実際にやってみる リベース リベースを実際…

Git を1からやり直す(マージ編)

Git

Gitを1からやり直す(目次) マージ mergeとは、他のブランチの変更を取り込むこと。 コマンド 動作など git merge ブランチ名 マージする。可能な場合は早送りマージとなる git merge --no-ff ブランチ名 --no-ff:早送りマージ(ff)をさせないオプション …

Git を1からやり直す(ブランチ編)

Git

Gitを1からやり直す(目次) ブランチ branch とは「枝」という意味。履歴を枝分かれさせて開発し、うまくいけば統合させたり、うまくいかなかったら破棄したりということができる。ブランチの概念についてはこういうサイトを見るといいのでは(ブランチとは…

Git を1からやり直す(リセット編)

Git

Gitを1からやり直す(目次) リセットすると履歴が消えてしまうので、使うときは注意する! リセット コミットの指定方法 HEADで指定 ブランチ名で指定 コミットのハッシュで指定 ハッシュの確認方法 間違ってリセットしたとき リセットを使わずに直近のコミ…

Git を1からやり直す(基本編)

Git

Gitを1からやり直す(目次) 最近学習でGitHubを使う機会が増えたが、なかなか思い通りに操作できないので、1から学習し直すことにした。 基本コマンド コマンド 動作など git init gitで管理を始める。init は initialize(初期化)の略 git add ファイル名…

GitHub 間違ってmasterにpushした話

Git

先週、GitHubで初めてプルリクエスト(PR)をしようとして、間違ってmasterにpushしてしまった。 つまりGitHub上のコードが上書きされてしまった。気をつけようと思ってたのに…。 今回は自分で作った自分だけのリポジトリだったので、強制的に前の状態に戻し…

GitとGitHubの違い

Git

いよいよGitを使う機会が増えてきた。Gitについては何度か勉強したことがあったが、実際に使う機会はあまりなかった。 Gitを実際に使いはじめて、そもそもGitとGitHubを混同していたことに気づいた。 Gitとは Git(ギット)は、ファイルの変更履歴を管理する…