- 投稿日:2021-01-23T20:25:35+09:00
リポジトリの複製(プロジェクトを別名で複製)する方法
- 投稿日:2021-01-23T19:08:26+09:00
(UE4)Gitでのプロジェクト管理にGitLFSを使う
*この記事では、GitHubDesktopを使用しています。
自作したゲームのプロジェクトをGithubでpushしたら、こんなエラーが起きました。
error: RPC failed; curl 55 Send failure: Connection was aborted
「データサイズが大きすぎて送れなかったファイルがある」ということらしいです。
Gitは元々キロバイト単位の使い方が基本の為、画像や動画、ゲームプロジェクト等の大きなデータを扱うのには不向きなもの。GitLFS(GitLargeFileStorage)とは
GitHubで、大サイズのデータでも扱える様にしてくれる拡張機能。
ファイルのメタ情報だけをgitで保存し、ファイルの実態はリモートサーバーで管理する仕組みです。導入方法
Lfsを使用する為には、各リポジトリに対してインストールを行う必要があります。
_
1.ダウンロードページからインストーラーを入手する。
2.落とせた後、GitHubDesktopからlfsを使用したいリポジトリでコマンドプロンプトを開く。
3.コマンドラインに
$ git lfs instal
と入力。
リポジトリのあるディレクトリに.gitattributesが作成される。これで準備は完了です。
LFSを使って、ファイルの保存が行える様になりました。使用方法
先ほど作成された.gitattributesを開いてみると、
何も入力していないので、まだ中身は空っぽ。
この中に、次の方法でファイルを追加していきます。
コマンドプリンプトで、
git lfs track ”*拡張子”
を入力することで、
特定の拡張子データがトラックされる。例えばpsdをトラックするなら、
git lfs track "*.psd"
Tracking”*.psd”こうなれば成功。
.gitattributesを見てみると、
psdが追加されました。こんな調子で、データサイズの大きいモノを追加していきます。
UE4のプロジェクトだと、主に以下。.uasset
.uproject
.wav
.fbx(引用)追加できたら、変更が反映されているかGitHubDesktopで確認。
しっかり認識できてるみたいなので、comitしたらpushして完了です。メモ
そもそも今回LFSを使うことになったのは、プロジェクトのリポジトリをゲーム作成してから完成まで一回もコミットしてなかった為、最終的なデータサイズが大きくなりすぎた事が原因でした。
そもそもGitとしての使い方をしてなかったのが問題なので、もっと使う機会増やして覚えます…
- 投稿日:2021-01-23T19:06:45+09:00
LaradockでLaravel8の開発環境を構築する
前提
Mac
を使っているGit
インストール済Docker
インストール済できること
Laravel8
の開発環境が構築できるphpMyAdmin
でDBを参照できる手順
Laradock
をローカル環境に複製し、環境設定ファイルを編集するDocker
コンテナを起動し、コンテナに入るLaravel8
をローカル環境にインストールし、環境設定ファイルを編集するLaradock
の環境設定ファイルを編集し、Docker
コンテナ再起動Laravel8
とphpMyAdmin
の表示を確認する※コンテナは
nginx
とPHP-FPM
、Mysql
そしてphpMyAdmin
を用意します構築する
1.
Laradock
をローカル環境に複製し、環境設定ファイルを編集するLaradockを複製(複製場所は"/Users/任意の名前")
git clone https://github.com/LaraDock/laradock.git環境設定ファイル(.env)を編集
cp env-example .env vim .env編集箇所と内容
DATA_PATH_HOST=.laradock/data
COMPOSE_PROJECT_NAME=project_name
MYSQL_VERSION=5.7.31ファイル末尾に追記
DB_HOST=mysql
2.
Docker
コンテナを起動し、コンテナに入るDockerコンテナを起動
docker-compose up -d nginx mysql phpmyadmin docker-compose psDockerコンテナに入る
docker exec -it river_web_workspace_1 bash3.
Laravel8
をローカル環境にインストールし、環境設定ファイルを編集するLaravel8をローカル環境にインストール(ディレクトリ名はsrc)
composer create-project laravel/laravel src環境設定ファイル(.env)を編集
vim .env編集箇所と内容
DB_HOST=mysql
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret4.
Laradock
の環境設定ファイルを編集し、Docker
コンテナ再起動exit vim .env編集箇所と内容
APP_CODE_PATH_HOST=../src
docker-compose up -d nginx5.
Laravel8
とphpMyAdmin
の表示を確認するhttp://localhost/
http://localhost:8081/データベース名:mysql
ユーザー:default
パスワード:secret※DB編集する際は、先ずはルートではいり、上記ユーザーに編集権限を付与します
データベース名:mysql
ユーザー:root
パスワード:root以上になります。
- 投稿日:2021-01-23T17:27:15+09:00
git submodule
はじめに
この記事では、git sumoduleの基本的な使い方についてまとめました。
参考
この記事は以下の情報を参考にして執筆しました。
git submoduleとは
git submoduleとは、外部のgitリポジトリを自分のgitリポジトリのサブディレクトリとして登録し、特定のcommitを参照する仕組み。
基本的な使い方
作業中のリポジトリのサブモジュールとして既存のリポジトリを追加する。
サブモジュールを新たに追加するには以下のコマンドを実行する。
追跡したいプロジェクトのURLを引数に指定する。
git submodule add URL
デフォルトでは、このコマンドでしていしたリポジトリと同名のディレクトリにサブプロジェクトのデータが格納される。
- 投稿日:2021-01-23T11:04:40+09:00
約2年プログラマーやってきて実際によく使っているGitまとめ
約2年プログラマーやってきて実際によく使っているGitをまとめました。
ローカルとリモートって言われても未だにピンと来ないポンコツですが、
originと開発環境で理解して何とかやってきました←
同じ様な人がいるかもしれないのでそのまま記載していきます。開発環境のmasterを、強制的にoriginのmasterに合わせる
▼ originのmasterの最新を取ってきて git fetch origin master ▼ originのmasterに強制的に合わせる! git reset --hard origin/master作業中だけどpullした状態で進めたい時
(下記ではmasterブランチを指定しています)
▼ 退避して git stash ▼ pullして git pull origin master ▼ 適応させる git stash applyaddしてしまったファイルを戻す
git add . で一気にaddした後で、上げたくないファイルがあること思い出した時。
git reset ファイル名編集したファイルを編集前に戻す
(新しく作ったファイルは追跡されていないのでrmで削除する必要あり)
git checkout ファイル名 ▼ 全て戻したい場合は「ファイル名」部分を「.」にします git checkout .push前の、直前のコミットを取り消したいとき
(ファイルの編集内容は 保持 したい時)
git reset --soft HEAD^push前の、直前のコミットを取り消したいとき
(ファイルの編集内容も 破棄 したい時)
git reset --hard HEAD^ブランチにマージする
(下記ではmasterブランチにdevelopブランチをマージしています)
▼ マージしたいブランチに移動 git checkout master ▼ マージ git merge developoriginにあるブランチを開発環境に作りたいとき
(下記ではdevelopブランチをしています)
▼ originの最新を取ってきて git fetch ▼ originのdevelopブランチを指定して、developブランチを作成 git checkout -b develop origin/develop最後に言い訳
現在所属している会社では自宅勤務のこと「リモート」って呼んでいるので、
「リモート」と聞くと 自分のところ 感があるんですよね。(知らんがな)
- 投稿日:2021-01-23T10:53:16+09:00
GitHubへローカルのファイルをあげて、マージする方法。
概要
ローカルのブランチをGithubに挙げることはできていたが、「There isn’t anything to compare.main and master are entirely different commit histories.」という注意書きが表示され、マージできなかった。3時間くらい格闘して、正しいやり方ではない気がするができたので一応書いておく。
コード
$.git pull --allow-unrelated-histories origin main $.git push --set-upstream origin master:main説明
①$.git pull --allow-unrelated-histories origin main
これでgithubのmainブランチをローカルのマスターブランチに持ってくる。
おそらくだがこのコマンドによってローカルとリモートの関係ができ、マージできるようになる。
②$.git push --set-upstream origin master:main
これでローカルのmasterブランチをリモートのmainブランチにプッシュできる。
originはリモートのことを指しているらしく、最後の「master:main」のところは前者の部分にローカルのブランチ名、後者にリモートのブランチを書けば、それぞれ任意のプッシュ元、プッシュ先を指定可能になる。また、プルするリモートのブランチとプル先のローカルのブランチでコンフリクトが起きている場合、①と②の間できちんとコンフリクトを解消しないと②がきちんと機能しなくなるので注意。
参照記事
1.https://hacknote.jp/archives/31307/
2.https://qiita.com/takanatsu/items/fc89de9bd11148da1438
3.https://qiita.com/Lnest/items/9e0f1780ee96b05a0cd4(これはGitの使い方の基礎をまとめたもの)
- 投稿日:2021-01-23T10:48:11+09:00
CentOS7 Gitを導入する
- 投稿日:2021-01-23T08:43:39+09:00
【git】error: failed to push some refs to [githubのURL]プロテクトされたブランチにプッシュした場合
共同開発を初めて、初期に出たエラーです。
なんとも簡単なエラーですが、自分の戒めとして備忘録として載せておきます。プロテクトされたブランチにプッシュしちゃった
ターミナルgit push origin HEAD Counting objects: 3, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 1000 bytes | 1000.00 KiB/s, done. Total 3 (delta 2), reused 0 (delta 0) remote: Resolving deltas: 100% (2/2), completed with 2 local objects. remote: error: GH006: Protected branch update failed for refs/heads/develop. remote: error: At least 1 approving review is required by reviewers with write access. To https://githubのURL ! [remote rejected] HEAD -> develop (protected branch hook declined) error: failed to push some refs to 'https://githubのURL'本来なら新しいブランチを切って、そこから開発用であるdevelopブランチにプッシュするのですが、ロックされているdevelopブランチに直でプッシュしちゃいました。
1つのエラー事例として参考になれば幸いです。
- 投稿日:2021-01-23T00:59:11+09:00
cherry-pick:あるブランチの特定コミットを取り入れたい時に使うコマンド
複数の作業ブランチがあり、その中から特定コミットを反映させたい。
しかし、リリースの日程調整上、全てマージするわけにはいかないと言ったこともあり得ます。
このコミットの内容だけ欲しいのになぁという場面で使えます。cherry-pick
// これを実行するとコミットまで実施される。 git cherry-pick 1fdc89d0 // コミットはせずステージングにあげる git cherry-pick -n // 名前を指定する git cherry-pick -e // 複数コミットに対して行う(1fdc89d0 ~ 546fc501の間のコミットを対象に) git cherry-pick 1fdc89d0..546fc501コミットIDの調べ方
git logコンフリクトが起きた
コンフリクトの解消をしたら下記で処理を再開できる
git cherry-pick --continue // やめる時 git cherry-pick --abortcherry-pickは再使用できない
これはすでにcherry-pickしようとしているコミットIDがブランチに記録されている場合の話。
例えばあるコミットでデグレを起こし、該当箇所をrevertし解消した後Pushしたとする。
この後、再度ローカルブランチで一部コミットだけをcherry-pickして修正を加えるなどができない。そのコミットは履歴に組み込まれているという認識になるため。こんな場合にも使えるのがcheckout。
checkout branch名 -- file名 で該当ファイルの内容を引っ張る
git checkout branch名 -- file名これならcode内容をとってくるだけなので、自分で新規コミットを作る形になる。