02月02日 Study – git 基礎まとめ 【clone~プロジェクト編集~push】
gitの勉強会を受けての復習と、今後の開発でgitをマストで使っていくため簡単にまとめてみました。
基礎的な部分のみ、clone~プロジェクト編集~pushまでの一連の流れになります。
前提
・環境はwindows
・gitコマンドをコマンドプロンプトで受け付けるようにしています。
・勉強会ではGitLabを使用していましたが、次の開発がGitHub予定のためGitHubを使用
・エディターはvscodeを使っています(編集ファイルはHTMLファイルのみ)
1. clone
まずは新しく開発に参画した際を想定して、プロジェクトをGitHubから持ってくるところから
GitHubのプロジェクトページにある右上緑のCodeにURLがあるのでコピー
ターミナルを開いて、今回のプロジェクトを保存したいディレクトリまで移動するか(cdコマンド)、
エクスプローラーでプロジェクトを置きたいフォルダでcmdを開く
(今回はgit_testというディレクトリを選択しています。)
コマンドプロンプトに次のコマンドを入力します。
git clone <URL>
cloneすると、フォルダにプロジェクトが入ります。
VScodeでこのフォルダを開いてみるとプロジェクトが無事ローカルにインポートされていて、編集できるのが確認できます。
2. branch
またターミナルに戻り、プロジェクトファイルのディレクトリに移動します
cd TestCode
編集する前に、developという名前でブランチを切っておきます
git branch develop
次のコードでbranchの状態を確認します
git branch
先ほどのコードはdevelopというブランチを作って確認しただけですので、ブランチを切り替える必要があります
では、以下のコードを打ってみましょう
git checkout develop
念のために git branch での確認でも、切り替わっているのがわかります
3. ファイル編集
それではHTMLファイルを編集してみます
先ほどのHTMLファイルの10行目にテキストを追加しました。
編集が終わったら、git statusで確認してみます。
赤く表示されているのが差分のあるファイルです。
4. add
それではtest.htmlをステージングエリアに追加してみましょう
git add test.html
(すべてのファイルをaddする場合は、git add . )
git statusで確認すると緑色に変わりました。
5. commit
次はcommitします
git commit -m “コメント”
“ ”←この部分はコメントを入れられます。
必ずいつ何を編集したかなど、コメントを入れるようにしましょう
6. merge
それでは次にプロジェクトの統合をするためmergeしていきます
まずはブランチをmasterへ切り替えます
git checkout master
念のために切り替わったことを確認
マージします
git merge develop
7. push
それでは、リモートリポジトリにプッシュしていきます
git push origin master
ちなみにこのmasterというのはリモートレポジトリのmasterブランチを指しています
※もしここで自分が持っているプロジェクト(cloneやpullした状態)とGitHubに上がっているプロジェクトに差分があった場合はエラーとなります(競合)
一度、GitHubから最新の状態のプロジェクトを自分のローカルレポジトリにpullします
git pull origin <ブランチ名>
開発は他の人と同時にしているはずですので、実際は競合することの方が多いと思います。
pushのコマンドを実行すると以下のように
GitHubのプロジェクトページを更新してみると、次のように編集したファイルが確認できると思います
htmlをクリックしてみましょう
テキストが追加された状態のHTMLが表示されています。
最後に、最新の状態をpullして再度作業に取り掛かるための準備をします
まずは自身の作業していたブランチを削除します
git branch -d develop
そしてプルします
git pull origin master
再度2.branchから始めて、ブランチを切っていくところから進めていきます
基本的にはこの繰り返しになります。
最後に
省略してしまいましたが、どの開発現場においてもpushしてGitHubにプロジェクトを上げる際に、プルリクエストをするのが基本です
(というよりこのリクエストをプロジェクト責任者に承認してもらわないと、マージされない)
また、cloneやpullをするファイルも、プロジェクトファイル全部を持ってくるのではなく、設定ファイル等はそのままに指定されたファイルのみclone、pullするケースが多いかと思います。
このあたりのルールは開発現場によって異なると思いますので要確認です。
【git勉強会レポートはこちら】