俺の開発大作戦

Linux, Mac, Windows10 で 迷走する1開発を進めていく備忘録5

よく使う Github のコマンド備忘録

自分は、もはやGitHub が無い生活は考えられないくらいこのサービスの恩恵を受けているが、日常的に使わないコマンドはいつもうろ覚えで、ネット検索にお世話になっている。いい加減おぼえろやと自省して、いつも忘れがちになるコマンドをまとめておく。

1. ローカルリポジトリを作成してリモートに push

まずはローカルレポジトリを作成したい場所までターミナル上で移動して、'git init' を実行。続けて、普通に 'git add' から 'git commit' まで実行してしまう。(ファイル数0から始める場合は、'git add' 前に適当なファイルを作っておく。)

% git init
% git add .
% git commit -m "適当に first commit などのコメント"

次に push 先となるリモートのリポジトリをGitHub上で作成し、ローカルからアドレスを指定して紐付けを行う。(アドレスの指定は SSH で行うのがお勧め。push の度に、ユーザ名とパスワードを入力する手間が省ける。但し、事前にローカル環境で公開鍵と秘密鍵のペアを作成し、このうち公開鍵を GitHub に登録しておく必要がある。)アドレスは、GitHub のレポジトリ毎のページに記載があるので、それをコピペ。

% git remote add origin 紐付けするリモートリポジトリのアドレスを 'HTTPS' または 'SSH' で指定

最後に 'git push' を実行。実行時に、'-u' または '--set-upstream' のオプションをつけることで push 先のブランチがトラックされ、これ以降 push や pull のデフォルトの対象先として設定できる。

% git push -u origin master
% git push --set-upstream origin master

2. commit を安全に取り消す

'git reset' では、commit が削除されてもはや最初から無かったことになってしまう。これは、かなり危険なのであまり多用したくなく、作業がかなり進んだ段階では、'git revert' だけを普段使うようにしている。

- ID を指定して取り消す場合、
% git revert <commit ID>
- 直前の commit を取り消す場合、
% git revert HEAD

'git revert' 自体の変更履歴が残るので、それ自体取り消してまた 'commit' 後の状態に戻れたりと、作業の取り返しが何度でも可能。既にリモートに 'push' した後の 'commit' を取り消した後は、pushも忘れずに。('git revert' 自体が、新しい 'commit' の追加になるので、 '-f' オプションは不要。)

% git push origin master

なお、直前より前の 'commit' を取り消すと、その後の 'commit' の内容に同一ファイルの変更が含まれる場合などにコンフリクトが発生し、カオスな状態に陥り易くなるため、直前以外の 'revert' を多用する際は注意したい。

3. ローカルの変更を破棄

ローカルで幾つか変更を加えて save するものの、何かモヤモヤして git に展開する前に元に戻したくなる時がたまにある。そんな時に使うコマンド。

- ファイル名を指定して一つずつ変更を破棄する場合、
% git checkout <filename>
- 全てのファイルの変更を破棄する場合、
% git checkout .

まあ、ひとまずこんなところで・・・。まだまだ 'merge' だとか'rebase' だとか色々あるが、機会を見つけて本ページ内に追記していきたい。

俺: 医療系事業会社のITサービス開発担当者

▼プロフィール畳む

▶プロフィール見る

ネットが産声をあげた前世紀末に元国営の通信会社に新卒入社し、以降およそ10年間勤務して、インターネット系の新規事業立ち上げに複数携わる。

その後、退職して、ITベンチャーのスタートアップ参画を皮切りに、複数のIT企業でプロダクトマネージャーを務めた後、縁あって現在の医療系事業会社へjoin。

元来、エンジニアばかりの環境で過ごしてきたが、いまいるここは一般の非IT系事業会社。

自分以外に実際に手を動かせるスタッフは誰もいない環境やさかい、IT系プロダクトの企画から内製によるシステム開発、ビッグデータ分析や人工知能のビジネス転化への試行錯誤も仕方なく一人でマルチに行い奮闘中。
(そろそろ仲間が欲しい・・・)

E-mail: contact@kobachan.biz

カテゴリー
月別アーカイブ
  • 2018 (4)
  • 2017 (6)