おしりんブログ

新人PGおしりんの色々まとめるよブログ

Git(Hub使ってみたい)について

本日ついにJavaSilver受験してきました。

結果は…
まだわかりません。


というのもテスト結果を確認するサイトで
ログイン失敗しまくってたら
アカウント凍結を食らってしまったのです。

結果は凍結解除してもらってからなので
水曜日あたりにわかると思います。
めっちゃモヤさましてます。


そんな今日はGitについてまとめたいと思うよ。


会社の某元総理先輩からGitを教えてもらって約一ヶ月。

開発ではEclipseプラグインを使ってGitを操作してたから
まあコマンドライン上での操作がわからない。


今日まとめようと思って、先輩の作成してくれた資料見てたんだけど
git cloneってなんだっけってなる始末。

てことできっちり復習していきたいと思います。

・Gitとは

 ソースコードを管理する「バージョン管理システム」のこと。
 複数人での開発においては、必要不可欠な存在である。
 
 バグの修正や機能の追加ごとにソースコードの状態を記録し、
 それぞれのソースコード・バージョンを管理することができる。
 
 バージョン管理システムにはGitの他にもCVSSVNがある。

・集中型バージョン管理と分散型バージョン管理

 集中型バージョン管理システムSVN」の仕組み
  開発プロジェクト一つにつき、一つのリポジトリが存在する。
  プロジェクトに参加するメンバーは、
  中央リポジトリからソースコードを持ってきてから編集し、
  編集が終わったら、直接中央リポジトリに反映させる。
  
 分散型バージョン管理システム「Git」の仕組み
  集中型が一つのリポジトリを皆で共有するのに対し、
  分散型ではリポジトリ複数持つことが出来る。
  
  構成としては、サーバ上にリモートリポジトリを置き、
  開発者それぞれがローカルリポジトリを持つという考えが挙げられる。
  
  開発者はローカルリポジトリで作業をした後、
  ある程度の作業(実装)が終わったら、
  リモートリポジトリに反映させる、という使い方が可能。
  
 2つのバージョン管理システムの大きな違いは
 リポジトリ複数持てるか否かってとこだね~
 
 複数人が関わるプロジェクトであれば、
 Gitを使用したバージョン管理を行う必要性があるね。
 (って書いてあったよ)
 
 
ここからは基本コマンドとコマンドの意味について復習~
例によって時間も時間なので手短にまとめられるように頑張る。

・Git用語とコマンド

 ・クローン

git clone <remote repos path>

  リポジトリを複製すること。
  リモートリポジトリを複製して、自分の作業環境に
  ローカルリポジトリを作成するときに使う。
  
 ・master
  Gitのデフォルトのブランチ名のこと。
  常に最新の情報が置いてある場所。
  
 ・チェックアウト

git checkout -b <topic>

  ブランチを作成して、そのブランチに切り替えること。
  masterからブランチを切る際は、
  必ずmasterを最新化(プル)してからチェックアウトする必要がある。
  
  特定のコミット・リビジョンもブランチに指定することが出来る。
  
 ・プル

git pull

  他のリポジトリの更新された部分を
  自分のリポジトリに取り込む操作のこと
  
 ・コミット

git add <path>
git commit -m <message>

  addでコミット対象を選択したのち、
  commitで作業変更履歴を保存することができる。
  コミットは小刻みに行うことが推奨される。
  
 ・プッシュ

git push <repository> <refspec>

  refspec にブランチを指定することで、
  変更内容をブランチに反映させることが出来る。
  
  
…めっちゃ基本的なところはこんな感じかなあ。
マージは先輩にレビューしてもらった後に、
やってくれてるから、自分でやることはあまりないかな。

ほんと、Eclipseプラグインさまさま状態だったから
コマンドでの操作とか自信ない。

GUIだとコミット内容とかいちいち確認できるし、
アラート出してくれるしだから、頼ってしまう。


今回参加した開発では、Gitの他にも
GradleとかJenkinsとか色々なツールを教えてもらったよ。

あたしが直接いじることはまだまだないけど、
ツールがどんな役割を果たしているのかは
ちゃんと理解してる必要があるよね。

ってことで、来週はそこらへんもまとめていけたらなと思ってるよ。


明日からっていうか先週からだけど、
自分以外の人が書いたコードのテストをしているよ。

まだまだ知識不足の私にとって、
人の書いたコードを読むことはもちろん勉強になるんだけど、
何書いてあるのか「?」ってなるとこが結構あって、
なかなか思うように作業が出来なくて大変。


金曜とか一日かけてテスト2項目しか進まなかったし
へこんだよもーーーーベッコベコに。

仕様書ちゃんと読んで
スムーズにテスト出来るように頑張りやし。


以上。おやスヤァ