Gitが使いたいのに、なにからしたらいいかわからない
なんかみんなGitを使っている。私も使いたい。
でも職場はSVN。なにが何だかよくわかりません、お手上げです。
…となっている過去の私やあなたへ。
非常にざっくりとした理解ですが、以下の手順でやればとりあえず導入できます。
概要
Git/GitHubをとりあえずつかってみる。
ローカル環境とリモートの環境構築と、簡単な使用方法
Gitとは
バージョン管理ソフト。
変更履歴を確認したり過去のバージョンに差し替えたりできます。
環境構築
Git for windows をダウンロード
macはもともと付属しているようです。
Windowsの方はググってダウンロードしましょう。
GitBushの設定
コマンドプロンプトでもgitコマンドは通ったので、これでもいいかもしれないのですが、Unixコマンドを使いたいため、以下ではGitBushを使用します。
1. Gitコマンドが使えるか確認
$git --version
GITのバージョンが返ってくればOK
2. ユーザー名とメールアドレス登録
$git config --grobal user.name "TanakaTaro"
$git config --grobal user.email "TanakaTaro@tmp.com"
名前とメールアドレスは各々置き換えること
設定が反映されているかは$git config --list
で確認できます。
3. SSHのカギを作りましょう
$ssh-keygen -t rsa -b 4096 -C TanakaTaro@tmp.com
メールアドレスは各々置き換えること
フォルダをどこに配置するかとか、パスワードの設定とか聞かれますが、適当に対応する。
(nullで良かったと思います)
4. SSHのconfig設定
$vim ~/.ssh/config
Host github
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa(デフォルト名の場合/秘密鍵のパスを入力)
Vimが苦手な方用:
入力から保存などのコマンドへ移行するにはesc
を押すと切り替わります。esc
+:wq
です。
WebでGitHubアカウント作成
アカウント作成はgithub.comからどうぞ
アカウントを作成したら公開鍵を登録します。
拡張子が.pubのほうのファイルid_rsa.pub
です。パブリックの意味です。
GitHub右上のアイコン>アカウントメニューから「Settings」>左側メニュー「SSH and GPG keys」>「New SSH key」>公開鍵を登録
から登録できます。
リポジトリ作成
リポジトリとは、ファイルなどの変更履歴として格納する場所のことです。
このWebブラウザから作れちゃうのでそのまま作っちゃいましょう。
名前は何でもいいです。Sampleとかtestとか、なんでも。
SSH接続確認
$ssh github
これで通信が成功すればとりあえず次に進めます。
(今回は躓かないことを目標としているのでこれで良しとしましょう)
使ってみる
使わなきゃどうしようもないので使いましょう。
作業ディレクトリをつくる
$mkdir git_work
$cd git_work
この時エラーを吐いたら、とりあえずDesktopとかに移動してリトライしてみること。
GitHubからクローンする
リポジトリの内容をローカル環境にコピーしましょう
$git clone git@github.com:***********/test.git
git@github.com…
はブラウザからGitHubにアクセスして緑色のClone or Download
のところから持ってくる。
この時エラーを吐いたら、とりあえず上で作ったフォルダに移動してリトライしてみる
作業用ブランチを切る
$git branch test_branch
$git checkout test_branch
ブランチを切るときはクローンしたフォルダに移動してからやりましょう。
git branch
で今あるブランチを確認することができます。
作業したらコミットする
$git status
$git add 追加ファイル名
$git commit -a
コミットはローカルレポジトリに変更を反映させる作業です。
status
で確認、add
で追加して、commit
で変更を記録
この時コメントが書けるのでどんな変更をしたかをコメントしましょう
PUSH!
$git push origin test_branch
PUSHはローカルリポジトリの変更をリモートリポジトリへ反映させます
この後github(WEBのやつ)でプルリクエスト(masterにマージしてください)を送ったりする。
マージしよう
$git checkout master
$git merge test_branch
$git push origin
github上でマージするほうが主流なのかもしれないです。
ローカルを最新状態にする
$git pull
PULLはリモートリポジトリの変更をローカルリポジトリへ反映させる
Tips
更新が競合したときは、手元のブランチにマスターをマージする
=git pull
$git pull test_branch
最終コミット時点に戻る
$git reset --hard HEAD
使い終わったブランチを消す
$ git branch -d test_branch
コミットを取り消したいとき
git reset --soft HEAD^
Note
ここではSSH keyのchmodの設定にも言及してないです。ちゃんと設定したほうがいいです。
そして、恥ずかしいほど初歩的な質問をしてしまったにもかかわらず、快くご回答いただいたteratailの回答者様には深く感謝申し上げます。
備忘として:Permission deniedで作業ができません
今回はGITに躓かないように、ということを重視して書きました。