[Git]プロジェクト作成時のリポジトリ登録方法

プロジェクト新規作成時のリポジトリ登録方法についてまとめました。

問題点

リポジトリを作成してcloneするのは問題ないのですが、composerなどでフレームワークをダウンロードする際に、すでにあるフォルダの中には展開できないっていう問題があります。もちろん、リポジトリの中でフォルダを作ってその中にフレームワークを置けばできることはできるのですが、なんかスマートじゃない。世の中の公開されているリポジトリを見てもそんな作りにはなっていないません。
ということで、今まではどちらかを作って手動でマージ(.gitフォルダーをフレームワーク側のフォルダにコピーするのが楽ですが)していたんですが、どう考えてもスマートじゃない…。
とうことでちゃんとした

方法

大まかな流れは以下の通りです。

  1. プロジェクトのフォルダを用意してファイルなどを置いておく
  2. プロジェクトフォルダ内でリポジトリを作成
  3. “git remote add” コマンドで既存のGitリポジトリを登録
  4. “git add .”ですべてのファイルを登録しcommit
  5. origin master(もしくはmain)にpush
  6. 後はいつも通りにcommit、push、fetchなどを行う

具体的な操作は以下のような感じになります。

$ cd [プロジェクトのフォルダ]
$ git init
$ git remote add origin [GitのURL]
$ git add .
$ git commit -m "Initial commit"
$ git push -u origin master

※githubでごく最近新規でリポジトリを作った場合は、デフォルトのリポジトリ名がmainになっている場合があります。

因みに、githubやgitlabでは、サイトからリポジトリを作った後に、この手順が表示されます。

githubだと”…or create a new repository on the command line”と書いてある項目の手順でやれば良いかと思います。
実際にはこんな感じでやるように指示されています。
※test_prjがプロジェクトのフォルダです

echo "# test_prj" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin [GitHubのリポジトリURL]
git push -u origin main

ブランチの作成

一人で開発しているというような場合だと、全部master(main)ブランチで管理しちゃっているという人もいるかもしれませんが、最低でもとりあえず一通り動くようになったら完成版と作業中のブランチは分けておくべきです。
ということで、git-flowっぽくdevelopブランチを作ってそこで作業するようにしましょう。

$ git branch develop     #developブランチの作成
$ git checkout develop   #作業中のブランチをdevelopに切り替え
$ git push -u origin develop  #リモートにdevelopブランチを登録

ファイルの追加

まず、作業は作業用のブランチで行います。
とりあえず、developブランチで作業することとします

$ git checkout develop

新規で作成したファイルを登録したい場合は

$ git add ファイル名

でできますが、数が多いと面倒な場合があります。そういった場合は

$ git add .

とすることで一括追加も可能です。
ただ、ログファイルやキャッシュファイルなど追加すべきでないものも入ってしまう恐れがあります。
そういった場合は、プロジェクトフォルダのルートの、.gitignore に入れたくないファイルやフォルダを記述しておくことで回避できます。
何等かフレームワークを使っている場合は、多分すでにあると思いますので、そこに追記していけばよいでしょう。

コミットとPush

ファイルの追加や変更を行ったらコミット操作を行い、リポジトリに変更内容を登録します

$git commit -m "コメント"

コミットではローカルのリポジトリにしかデータが残りませんので必ずリモート側へpush操作をしましょう

$git push

これで、リモート側へ変更データが保存されるはずです。最悪自分のPCのHDDが飛んじゃっても安心です。
基本的に、commitとpushは必ずセットでやるべきです。
しかし、作業途中などで動かない状態のものをpushしてしまうと、多人数で作業している場合問題になります。

そういった場合は、自分専用のブランチを用意してそこで作業するように、完成後そのブランチと共有のブランチをマージさせましょう。

マージ

作業用のブランチをリリース用のなどのブランチとマージさせます。今回はdevelopをmasterにマージさせます。
手順としては、マージ先のブランチに切り替えて、マージコマンドを実行します。

$ git checkout master
$ git merge develop

一応これでできるのですが、マージ先のブランチが作業中に変更されている場合は、競合が発生してしまう場合があります。

タイトルとURLをコピーしました