エンジニアになったからにはGitでしょう!
皆さんこんにちは!本日は、エンジニアになったら必ずと言っていいほど使うGitに関してお話していこうと思います。
まずGitとは??
→プログラムのソースコード等、
変更履歴を記録・追跡する為の分散型バージョン管理システムです!
(ちなみにソースコードだけでなくExcelファイルなども管理できますよ)
ファイルの中身を変更したら保存かけますよね?
その変更履歴をさかのぼることができたり
ファイルを他の人と簡単に共有ができるシステムです✨
Gitが生まれた経緯としては、
〇ファイル編集で困っていた。
ファイルを編集前に戻すときにどうするのか。
前もって編集前のファイルをコピーしておく方法。
この方法の場合ファイル名に編集した日付を追加しておいて対応するかと思います。
ファイルを編集するごとに自分でファイルをコピーするのは大変かつ間違いが起きやすい上に適当に名前を付けてしまった場合などもどのファイルが最新のものか区別がつかなくなってしまったりと管理が大変でした・・・・
〇チーム作業で困っていた
チームで共有しているファイルでは編集者の名前を入れておくこともあるがどのような変更を行ったか簡単にわからない状態。
チームで共有しているファイルの場合では二人で同時に編集してしまい
先に編集した人の変更内容が消えてしまったというときなどもあったそうです・・・
それを解決する為に生まれたのがGitです!!!!!!!!
Gitは、コマンド上で実行するものとなります。
しかし、このGitを可視化できるサービスが世の中にはいくつもあります!
〇SourceTree
TourtusGitはシェル拡張でしてWindowsエクスプローラに搭載されるものです!(こちらはSourcetreeと違ってWindowsのみしか扱えません・・・)
エクスプローラを開きフォルダを右クリックしたら写真のように様々なメニューが出てきます!
このようにすべてが可視化できるようになっている為に
かなり管理はしやすくなっております!
Windowsユーザーであれば必ず使うべきツールとなってきます✨
今回は、ベースとなるコマンド上での管理・基本的なコマンドをご紹介しようと思います!GitHubでファイル中身等は確認するようにします!
まずGit用語
・クローン
指定されたディレクトリに元のリポジトリと同じものを「複製」するコマンドになる。
例えば開発現場に新しく入った人がGitHubからソースをコピーしてきたいとき等クローンを行う。
DLと同じような役割と覚えてもらえればいいかと思います☻
・コミット
ファイルの追加や変更の履歴をリモートリポジトリに保存する事。
・プッシュ
ファイルの追加や変更の履歴をリモートリポジトリにアップロードする為の操作。(コミットでリポジトリに保存してからこのプッシュといった流れ。)
・フェッチ
リポジトリはリモートリポジトリ:master・ローカルリポジトリ:origin/masterとなっている。
そのリポートから最新情報をローカルに持ってくるが場所はmasterブランチではなくローカルの「origin/master」ブランチとなる。
・マージ(統合する)
フェッチでmasterの最新情報持ってきたらこのマージをすることでローカルのファイルが最新の状態に更新することができる!
・プル
フェッチとマージを組み合わせたもの。
プルを行うと自分のファイル一覧(ローカル)がリモートと同じ状態になるよ!
★実際の実行コマンド!
まず初めにフォルダをgitとつなげる必要があります!
ここからGitHubに登録。
https://github.co.jp/
私はコマンドラインcmderを使っているので
こちらにてまずGitで管理したいプロジェクトディレクトリに移る。
ちなみに、ディレクトリ構造はこうなっています!
今回は紫のフォルダをすべてgitで管理したい!
mySNSというプロジェクトを管理していくといった形で説明していきます✨
①まずは、gitへコマンド上でログイン
git config --global user.name "OTAHARUNA"
git config --global user.email "githubに登録したメールアドレス"
ログインできたかは
git config --global --list
このコマンドで確認とれるよ!
以下のように表示されます!
emailの下は、自分でgit扱いやすいように設定しているだけなので初めての方は出てきません!
②そのファイルを初めてgithubと連携させるときは
git init
をたたきます!
これは「リポジトリを新規に作成」するときに使用するコマンドで
現在のディレクトリまたは指定したディレクトリに「.git」という
リポジトリを構成するディレクトリが作成されつなげることができるということです✨
ここまで出来たら実際にリポジトリにファイルをアップしていきましょう!
〇ファイル追加したいときは、
git add .
カレントディレクトリにあるファイルがすべて対象になります!
※カレントディレクトリ:現在いるディレクトリ。
画像でいうとmySNS配下、つまり紫の〇内全てが対象ということですね!
git add ファイル名
こちらで特定のファイルをアップする事もできます!
こういった細かいところのオプションは沢山ありますのでそちらはご自身で沢山調べて頂ければと思います!
こちらが参考になるかと☻
上記にて変更した追加したいファイルをローカルに追加したら!
〇コミットする操作。
git commit
これでコミットができます!
ただコミットするだけでは後々このコミットなんだっけ、ファイルがどの状態のだっけとわからなくなってしまったりします!
その為にそのコミットに名前を付けましょう!
git commit -m "コメント"
例えば
git commit -m "初めてのコミット"
とかね!
コミットしようとしたらワーニング・・・
と出るかもしれません。
こちらはgitはLF改行コードをCRLFに自動変換したことによるワーニング・・・
git config --global core.autoCRLF false
とたたけば解決できます!
コミット間違えてしまった・・そんな時でも大丈夫!-aに助けてもらおう!
git commit -a -m "コメント"
これを実行すれば、直前のコミットを上書きしてくれます✨
直前のコミットを取り消ししたいときは
git reset --soft HEAD^
こちらの--softオプションは
ローカルはそのままでコミットだけ取り消ししたいときに使います!
リモートに自分のローカルも戻したいといった時は
git reset --hard HEAD^
です!!
この--hardオプションというのは
コミットを取り消ししたうえでローカルの内容も書き換えたいときに使います!
コミットまで行ったら!!
リモートリポジトリにてファイルをみんなに共有したいときはプッシュ!
git remote add origin https://github.com/OTAHARUNA/mySNS
originの後ろは自分のGithubのURLになります!
これを設定しておけばoriginと関連付けることできてリモート登録ができるというわけです!
そしてやっとプッシュ
git push origin master
これでGitHubを見るとフォルダ・ファイル一式反映されているはずです!
他の方とフォルダ共有して開発するときなどは他の人がファイル内変更しているときその情報を持ってきてから自分の変更を挙げる形になります!
その為、add(追加)をする前にまず何よりも先にプルをしてリモートリポジトリの最新の情報をもって自分のフォルダも最新化してから自分の変更をアップする必要があります!
他の人と共有して開発していく場合の管理方法はまた別の回にて紹介させていただきますね!✨
本日はGitでのフォルダ管理、基本的なコマンドを紹介させていただきました!
Gitが扱え管理できるようになれば、開発で役に立つだけでなく
PCがいきなりクラッシュしたとき等でもPCを変更したときでも問題ありません!インターネット上に保存しているんですから!最高でしかありません!
Gitは当たり前に使えないといけません!
現場によっては、コマンドで管理しているプロジェクトもありますし
SourcetreeやTourtusGitなど可視化できるツールで管理しているプロジェクトもあります!
Gitの基本的なところさえ押さえておけばどのツールでも使える・順応的に活用できるでしょう!
一緒に頑張って勉強していきましょう!
ではまた次回!!!!!!