- 投稿日:2021-03-21T22:53:38+09:00
【Git】Changes not staged for commit:とエラーが出たときの対処法
gitでmasterブランチで直接編集した内容をcommitしようとしたとき下記のように怒られました。
masterのuser_test.rbをcommitしようとしたgit commit -m "Fix test" On branch master Your branch is up to date with 'origin/master'. Changes not staged for commit: modified: test/models/user_test.rb no changes added to commit
Changes not staged for commitを直訳すると「コミットのためにステージングされていない変更」になります。
最後の行は「no changes added to commit」は「コミットするために追加された変更はありません」という意味でした。
変更したものがコミットされていないと言われています。
解決策
エラーの内容通り、Addをしたら解決しました。
stagedに対象のファイルが追加されていなかったため、「コミットのためにステージングされていない」というエラーが表示されたのだと思います。
git add -A参考
git 2.2 Git の基本 - 変更内容のリポジトリへの記録
https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E5%9F%BA%E6%9C%AC-%E5%A4%89%E6%9B%B4%E5%86%85%E5%AE%B9%E3%81%AE%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%81%B8%E3%81%AE%E8%A8%98%E9%8C%B2
- 投稿日:2021-03-21T18:54:27+09:00
【M1 BigSur】JenkinsからGit(LFS)のチェックアウトからUnityへのビルドまで(Github)
概要
Mac Book Air (M1 2020)
macOS Big Sur 11.2.2【M1 BigSur】Jenkins導入編
こちらで書かせたいただいた記事の続きです。
この記事を残しておきたかったのでついでにJenkins導入を書いた次第です。
JenkinsからGitでチェックアウトができればいいので別にUnityでなくてもいいですが今回は確認のために利用しています。一連の流れを記事にしましたが割と困るのが
BigSurでのgit-lfs filter-process: git-lfs: command not found
エラーの回避方法だと思います。準備
Github
Githubで作成したリポジトリーを使っているのでアカウントは作成しておきましょう。
unityのインストール
・とりあえずUnityはインストールしておいてください。
今回はUnity2020.3.0f1
で試しています。GitのSSHキー(作っていない場合)
$ ssh-keygenいろいろ聞かれるみたいですがすべて空白ままエンターして続けました。
生成場所は
Users/[ユーザー名]/.ssh/
に作られるのでこちらを使用してGithubからSSHを登録します。
Githubのアカウントから
Settings>SSH and GPC keys
を選択してNew SSH Key
を選択する。
設定 内容 Title これは好きに入力してください。 Key ここは先ほど作成した Users/[ユーザー名]/.ssh/id_rsa.pub
の中をコピーして貼り付けてください。このように作られます。
JenkinsのUnityプラグインを導入
インストール後に再起動してもらうために
Download now and install after restart
を選択しました。
インストールできました。
設定したら保存しましょう。
インストールディレクトリにはjenkinsをインストールしたUnityのパスを設定しますが
FinderでUnityからoptionを押しながらするとパスをコピーできます。
ジョブを作成
最初なので
ジョブ名:
unity_test
お好きな名前
フリースタイル・プロジェクトのビルド
で作成します。
認証情報を追加します。
追加した認証情報を選択して保存します。
これでプロジェクトの設定はできました。
Unityのビルドをしてみる
リポジトリーの準備ができたのでunityに対してビルドしてみます。
適当にビルドするものを用意して試してみました。
BuildTest.cs(ビルドの確認)
BuildTest.csusing UnityEngine; namespace Build { /// <summary> /// ビルドのサンプル /// </summary> public class BuildTest { public static void HelloWorld() { Debug.Log("Hello World!"); } } }
Invoke Unity3d Editor
を選択してビルドの確認のために作ったビルドをjenkinsから呼び出してみます。
-quit -batchmode -projectPath /Users/[ユーザー名]/.jenkins/workspace/[githubのプロジェクトパス] -executeMethod Build.BuildTest.HelloWorld
/Users/[ユーザー名]/.jenkins/workspace/[githubのプロジェクトパス]
を設定して
ビルド実行
してみましょう。ビルド時のエラー
git-lfs filter-process: git-lfs: command not found
GitLFSをインストールしているか確認してなければインストール
ターミナル:-zsh% git lfs versionインストールなしgit: 'lfs' is not a git command. See 'git --help'.インストールありgit-lfs/2.13.2 (GitHub; darwin amd64; go 1.15.6)git-lfsをインストール
ターミナル:-zsh% brew install git-lfsBigSurではCatalinaと違って読み取り専用な
/usr/bin/
などを一時的に無効にしてシンボリックリンクを作成できないみたいなので、Appleの公式の書かれている書き込み可能なマウントパスに設定してgit-lfsのシンボリックリンクを作成します。・リカバリモードで再起動して実行します(M1の場合は電源ボタンを長押ししてリカバリーモードに入ります。)
セキュリティの確認をします。
ターミナル:-zsh% csrutil statusSystem Integrity Protection status: enabled.enabledの場合は無効に
ターミナル:-zsh% csrutil disableターミナル:-zsh% csrutil authenticated-root disableMacOSに再起動します。
ここからgit-lfsのシンボリックリンクを作成するためにマウントフォルダーを作成してディスクをマウントします。
ターミナル:-zsh% mkdir ~/mountターミナル:-zsh% sudo mount -o nobrowse -t apfs /dev/[デバイス] ~/mount
[デバイス]
はディスクユーティリティの値を見ます。あなたのルートを検索-あなたのルートは/dev/disk1s2s3であればmount実行し、最後のを切り落とす、例えば、あなたは/dev/disk1s2をマウントします
Appleの公式に書かれているの通りに
disk3s1s1
の場合はdisk3s1
でマウントします。ターミナル:-zsh% sudo ln -s /usr/local/bin/git-lfs ~/mount/usr/bin/ターミナル:-zsh% sudo bless --folder ~/mount/System/Library/CoreServices --bootefi --create-snapshotそのまま再起動
ターミナル:-zsh% sudo reboot再度jenkinsの
ビルド実行
してみてください。参考リンク
【Jenkins】GitのSSH接続をするための認証情報を設定する【GitHub】
JenkinsでUnityプロジェクトをビルドする
Unityコマンドライン引数
「macOS Big Sur 」でgit-lfs filter-process: git-lfs: command not foundに対応する
- 投稿日:2021-03-21T18:36:23+09:00
Windowsユーザー必見!scoopを使ってコマンドからGit、Node、npm、PHPをダウンロードしてHomebrewを実現しよう!!
皆さんこんにちは!
今日はWinodwsでコマンドから色々ものをダウンロードして見ようかなと思います。
良く解説動画を見ると、Macで説明されている方が多くその度に
Homebrew
と言う言葉を耳にします。残念ながらWindowsではこのHomebrewと言うものは存在しません(多分)。
ですが、Homebrewと同じような機能をもつものがWindowsにも搭載されています!
その名はscoop!!
これを使えば、コマンドからNodeやらGitやらをインストールすることができます。
他にもscoopを使えばバージョンの指定を行うことも可能なので、わざわざサイトからダウンロードするなんて作業にはもうさよならです。
scoopをインストールするには
PowerShell
での作業が必須となりますのでご注意を。それでは早速scoopを使って色々やってみましょう!
scoopのインストール
もう一度言います。
PowerShellで行ってくださいね。
Set-ExecutionPolicy RemoteSigned -scope CurrentUser // 実行ポリシーの変更について聞かれるので「Y」を選択 iex (new-object net.webclient).downloadstring('https://get.scoop.sh')scoop bucket add extras scoop bucket add versionsこの2つは良く使うのでインストールしてください。
Gitの導入
scoop install gitこれでGitをインストールすることができました!
git --versionバージョンが返ってくればOK!
環境変数のPATHも自動で通してくれるのでめちゃ便利!
ついでに
openssh
も取得scoop install opensshNodeのインストール
お次はNodeをインストールし見ましょう!
scoop install nodejsバージョン指定
バージョン指定したい場合は以下のように実行
scoop install nodejs8ただし、
scoop bucket add versions
を行っていない場合は出来ないので注意。node -v npm -vバージョンが返ってくればOK!
PHPの導入
ここからはおまけみたいな感じです。
scoop install php-nts php-nts-xdebug vcredist2017 composerこれでPHPとComposerを使える環境が整いました。
php -v composer -vバージョンが返ってくればOK!
'****.dll' ** is not compatible with this PHP build linked with ** in Unknown on line 0このようなエラーが出る方は、下記の記事が参考になります。
・「MSVCR140.dll/VCRUNTIME140.dllがないため、プログラムが開始できません」と表示された場合
コマンドで操作を行うってやっぱり夢ありますよね。
これでバージョン管理も楽になるので、是非活用してください!
以上、「Windowsユーザー必見!Homebrewみたいにscoopを使ってコマンドからGit、Node、npm、PHPをダウンロードしてみよう!!」でした!
Thank you for reading
- 投稿日:2021-03-21T18:25:21+09:00
Gitでsubtreeを使用して複数のリポジトリを扱う
概要
複数のリポジトリをまとめて管理するリポジトリを作成する。
例えば、front, backの二つのリポジトリを、mainリポジトリで管理する。ディレクトリ構成main ├── front └── back準備
以下三つのリポジトリを用意する
- main
- front
- back
やること (mainにfrontを追加)
1. mainディレクトリに移動
$cd main
2. frontをリモートに追加
$git remote add -f front git@github.com:front.git
3. frontをsubtreeに追加
$git subtree add --prefix=front front main
prefixでディレクトリを指定、frontのmainブランチを追加する。
勝手にコミットされる。やること (mainにbackを追加)
mainにfrontを追加と同様
subtreeのリポジトリの更新を取り込む
git subtree pull --prefix=front front main
参考サイト
- 投稿日:2021-03-21T18:06:49+09:00
GitHub for Unityでコミットできない時
起こった現象
プロジェクトの途中でGitHub for Unityを導入したところ、Commitボタンを押しても「Staging Changes...」のまま動かず、しばらく経つとコミット自体が自動キャンセルされる。
(GitHub for Unityの導入方法は以下の記事を参考にさせていただきました。)
【超初心者向け】Unityのプロジェクトを、GitHub for Unityを使って超簡単にバックアップする方法 - Qiita
解決策
結局このプロジェクト内では何をやっても直らず、新しいプロジェクトを作って移植したらうまくいきました。
プロジェクトの最初にGitHub for Unityを導入するのがおすすめです。
途中から入れた場合でもコミットできるようになる方法があれば、コメント頂けると幸いです。
- 投稿日:2021-03-21T17:57:02+09:00
GitHub Actions内でdocker-compose execコマンド実行したときに"the input device is not a TTY"エラーが出たときの解決法
はじめに
githubactionでdocker-compose exec コマンドを普通に利用すると
the input device is not a TTYのようなエラーが発生してしまう。
今回はその解決方法を示す。
解決方法
docker-composeコマンドに
-T
オプションをつける!例)
$ docker-compose exec -T [docker-compose service] [コマンド]githubaction内で記述すると、こんな感じです!
```yml:githubactionファイル
name: githubaction sample省略
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Git checkout current branch #作業ブランチにchekout
uses: actions/checkout@v2
with:
ref: ${{ github.ref }}
- name: docker compose exec command sample
run: docker-compose up -d &&
docker-compose exec -T [docker-compose service] [コマンド]
```以上です!
みなさんの問題解決につながればと思います。
- 投稿日:2021-03-21T12:43:44+09:00
Git~add~
今回はGit addについて学習していきます。
git addとは
そもそも、gitには、作業エリアがあります。今回大切になるのが、ステージングエリアになります。
これはファイルを一時的に置いとくエリアになります。
ここに保存しなくてはどんなに頑張ってターミナルをたたいても、リモートリポジトリにあげることはできません。
そこで使うのがgit addです。
いくつか種類があります。git add .
こちらは変更、削除、追加したカレントディレクトリー以下のすべてのディレクトリを追加することができます。
(カレントディレクトリーとは、現在の位置ディレクトリのことです)git add -u (update)
変更、削除されたファイルが追加されます。しかし、新規作成されたファイルはaddされません。
git add -A (all)
変更、削除、追加されたファイルすべてが追加されます。
間違えてaddしてしまった
git reset HEAD ファイル名とします。
addしてアップしたあとcommitでメモを残して、Pushまでつなげます。
- 投稿日:2021-03-21T11:43:13+09:00
Gitインストール手順(Windows10)
注意事項
今回インストールするのは、バージョン2.31.0です。
バージョンが上がったりすることでインストール手順が異なってくる可能性があるのでご注意ください。①Gitのインストーラーをダウンロード
ダウンロードサイトからDownload 2.31.0 for Windows をクリックし、ファイルをダウンロードする。
②ダウンロードした「Git-2.31.0-64-bit.exe」を実行
③ライセンスの確認
④Gitのインストール先のフォルダを指定
特に指定がなければ、デフォルトのままで可
[Next]ボタンを押下
⑤オプションの選択
特にこだわりがなければ、デフォルトのままで可
[Next]ボタンを押下
⑥スタートメニューの選択
スタートメニューへの追加先を選択
特に指定がなければ、デフォルトのままで可
[Next]ボタンを押下
※スタートメニューへ追加したくない場合は「Don't create a StartMenu folder」にチェックを入れる
⑦エディタの指定
特にこだわりがなければ、デフォルトのままで可
[Next]ボタンを押下
⑧新しいリポジトリ作成時のブランチ名の設定
特に指定がなければ、デフォルトのままで可
[Next]ボタンを押下
⑨パスの設定
特に指定がなければ、デフォルトのままで可
[Next]ボタンを押下
⑩HTTPSの設定
特に指定がなければ、デフォルトのままで可
[Next]ボタンを押下
⑪改行コードの設定
特に指定がなければ、デフォルトのままで可
[Next]ボタンを押下
⑫ターミナルの設定
特に指定がなければ、デフォルトのままで可
[Next]ボタンを押下
⑬git pull コマンドの設定
特に指定がなければ、デフォルトのままで可
[Next]ボタンを押下
⑭資格情報マネージャー(Credential Manager)の選択
特に指定がなければ、デフォルトのままで可
[Next]ボタンを押下
⑮オプションの設定
特にこだわりがなければ、デフォルトのままで可
[Next]ボタンを押下
⑯試験運用オプションの設定
何もチェックをつけずに[Install]ボタンを押下
[Next]ボタンを押下
⑰インストール開始
⑱インストール完了
⑲インストールされたかの確認
コマンドプロンプトを起動し、「git --version」を実行
>>>git --version git version 2.31.0.windows.1
- 投稿日:2021-03-21T11:42:22+09:00
【Git】Untracked filesをまとめて削除する方法
プログラミング勉強日記
2021年3月21日
エラーの内容
git checkout .
したのだが、まだ不要なファイル(未追跡ファイル)が残ってしまっていて以下のようになる。$ git status On branch master Untracked files: (use "git add <file>..." to include in what will be committed) path... path... nothing added to commit but untracked files present (use "git add" to track)削除するファイルを確認して削除する
事前にどのファイルが削除されるか確認してから、削除するときはいかのコマンドを使う。
$ git clean -dfnそれぞれのコマンドオプションの意味↓
-d:ディレクトリも含めて削除する
-f:強制的に削除する
-n:確認を行う参考文献
- 投稿日:2021-03-21T01:48:32+09:00
リポジトリをまたがったタグやブランチの複製
Gitで別リポジトリのタグやブランチを複製したときの備忘録
やりたいこと
- リポジトリ(src)の特定のタグ(version1.0)を、別リポジトリ(dst)のブランチ(edit_version1.0)として複製する
- リポジトリ(src)の特定のブランチ(edit_version1.0)を、別リポジトリ(dst)のタグ(version1.0)として複製する
手順
リポジトリ(dst)をクローンし、複製先となるローカルブランチ(edit_version1.0)を作成
git clone https://github.com/dst.git cd dst git checkout --orphan edit_version1.0 git reset --hardリモートリポジトリ(tmp)として、リポジトリ(src)を登録
git remote add tmp https://github.com/src.gitリポジトリ(src)から特定のタグorブランチをプル
※タグをプルする場合 git pull tmp version1.0 --allow-unrelated-histories ※ブランチをプルする場合 git pull tmp edit_version1.0 --allow-unrelated-historiesリポジトリ(dst)へプッシュ
※タグ(version1.0)を付ける場合のみ実施 git tag version1.0 git remote rm tmp ※タグ(version1.0)をプッシュする場合 git push origin version1.0 ※ブランチ(edit_version1.0)をプッシュする場合 git push origin edit_version1.0作業ディレクトリの削除
cd .. rm -rf dst参考
- リモートリポジトリのタグの削除
git push --delete origin タグ名