Gitの自分用memoです
新米エンジニアです。
開発経験積みたいぞ!と思って、ボランティアで開発参加することになり「共同作業ならGitだよ!もちろん使ったことあるよね!!」という雰囲気だったので作業前にかじってみました。
GitとGit HubとGit Bashと…
職場でもよく「Git、Git」言ってるのは聞こえてきました。聞こえるだけで見ることも触ることも許されませんが。Gitってなんかソースコードを管理しているクラウドサービスのことなのかな?と、思っていましたが実際に触ってみるとGitつってもいろいろありましたのでまとめます。
Git
Gitは、バージョン管理のためのCUIツールです。
gitと接頭辞につけたコマンドを打つと、ファイルのバージョン管理に対する設定や指示がいろいろできるよーというもの。
ファイルのバージョン管理というのは、会社のPCで作業していてフォルダを右クリックすると「〇月×日何時に保存したファイル」とか履歴が残っていて復元できたりしませんか。あんな感じよ(適当)。
履歴にmemoも挟めて、誰が作業したのかもわかって、A案とB案があったけどB案が採用されたんだ!ってことまでわかるような、細かいファイルの履歴(バージョン)管理を作れるツールです。
Git bash
GitはCUIツールですので、PCが強そうな人が必ず出してるあの黒い画面で操作します。
Bashというのは、黒い画面で使われるコンピュータに指示を与えるためのツールのひとつで、Windows,Macに標準装備されています。Git BashはBashにGitコマンドを追加したもので、「Git for Windows(or Mac)」をDLすると「Git Bash」というソフトが起動し使用可能となります。
Git Hub
Git自体はバージョン管理ツールなので、自分のPCでひとり作業する際にも使用できます。ただ、別のPCを操作する別の人と共同で作業する際に、バージョン管理情報とファイルを一緒にインターネット上に置いておく必要がありますね。
そのプラットフォームがGit Hubです。
バージョン管理情報と作業オブジェクトをまとめて「リポジトリ」と呼びます。
自分のPCで作業しているオブジェクトを「ローカルリポジトリ」、ローカルからGit Hubに上げたオブジェクトを「リモートリポジトリ」と表現します。
ローカルからリモートへリポジトリを上げることを「プッシュ」と呼びます。
Gitを使ってみよう
著者はWindowsしか持ってないのでWindowsで…
Git bash
https://gitforwindows.org/
こちらはDLしてインストールしたら使えるようになります。デフォルト設定でとりあえずインストール!
Git hub
https://github.co.jp/
こちらに自分のアカウントを登録します。んで、まずは何でもいいのでリポジトリを作ってみましょう!
ローカルとリモートを繋げる
リポジトリを登録しましたら、URLが出てきますのでコピーします。
Git bashを起動して…適当にディレクトリを作ったら、まずはそのディレクトリにgitするよーと指示します。
$git init
ユーザーを設定しておきます。
$git config user.name
$git config user.email
作成したファイルをバージョン管理するように指示します。
$git add .
$git commit
自分のPCで作成したファイルをリモートリポジトリ(Git hub)にプッシュしてみましょう。
$ git remote add origin https://github.com/ユーザーID/リポジトリ名
$ git push origin master
Git Hubのリポジトリに変更が反映されていれば、成功です!
Gitの勉強
こちらのサイトを一通り読みました。
https://github.com/Shinpeim/introduction-to-git
古い記事なので、ところどころ現在のGitと違うようで、共同作業の部分がうまく出来ませんでしたが、まあ、あとは慣れだろう!!!
使用したコマンド(一部)
git status
git add ファイル名
git commit
git commit --amend
※直前のcommitを改変
git log
git log --graph --pretty=format:'%s %d'
※%s:commitメッセージ %d:ブランチ
git branch
git branch ブランチ名
git branch -d ブランチ名
git checkout ブランチ名
git checkout -b ブランチ名
git reset --hard コミットID
※戻りたい
git merge マージするブランチ名
※マージ元のブランチに移動してから使う
git merge --no-ff ブランチ名
git clone --bare 複製元 複製される先