0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【メモ】ソースツリーでコミット後にツイッターとキータを開く

Posted at

概要

 つぶやきと記録を行う為にコミット後、XとQiitaを開くようにしたい。
 つまりはコミット後に自動でXとQittaを開くように行う。

流れ

1.作業後、コミットを行う。
2.コミット時にプログラムを走らせる。
3.ブラウザでXとQiitaが開く。

実装までの流れ

※SauceTreeや開発環境などの設定については省略します。
※詰まったところは記載しています。

環境

・OS:Windows10 22H2
・SauceTree:Version 3.4.23.0
・Git:Version 2.45.2

1.確認

Git確認

・作業リポジトリの「ターミナル」を開き下記コマンド実施。

bash
git status

・「On branch ...」などと表示が出れば成功。
・「fatal: not a git repository」はGit管理されていないので別途対応が必要。

Gitバージョン

・「ツール」→「オプション」→「Git」→「Gitバージョン」
・GitバージョンがシステムGitになっていることを確認する。
・内臓Gitになっていたら、「System」を押下する。

フォルダ

・作業フォルダから「.git」→「hooks」のフォルダが存在することを確認する。
・隠しフォルダになっている可能性があるため、
エクスプローラーの「表示」→「隠しファイル」にチェックを入れる。
・「.git」の階層にあるフォルダは通常のフォルダ、ファイルになっている状態で大丈夫。

2.ファイル生成

パターン1 (単純)

・「hooks」フォルダ内に「post-commit」ファイルを生成する。
※拡張子はつけない
※UTF-8(BOMなし)ファイルで生成する
※改行コードはLF

bat
@echo off
start  https://x.com/compose/post
start  https://qiita.com/drafts/new
exit

パターン2 (関節)

・「hooks」フォルダ内に「post-commit」ファイルとpost-commit.bat」ファイルを生成する。
※UTF-8(BOMなし)ファイルで生成する
※改行コードはLF

post-commit
exec "(作業フォルダフルパス)/.git/hooks/post-commit.bat"
post-commit.bat
@echo off
start  https://x.com/compose/post
start  https://qiita.com/drafts/new
exit

パターン3 (コマンド)

・一番確実にできる
・SauceTreeの作業リポジトリから「ターミナル」

bash
cd .git/hooks
del post-commit.bat
echo @echo off > post-commit.bat
echo start "" "https://x.com/compose/post" >> post-commit.bat
echo start "" "https://qiita.com/drafts/new" >> post-commit.bat
echo exit >> post-commit.bat
del post-commit
exec "(作業フォルダフルパス)/.git/hooks/post-commit.bat"

3.動作テスト

パターン1 (通常)

・コミットして、ブラウザが開いたら成功。
・失敗の場合は文字コードがBOMになっている可能性があり。
※Git はこの BOM を含むスクリプトファイルを実行できない。

パターン2 (コマンド)

・親ディレクトリ(作業フォルダ)に戻ってコミット処理を行う。

bash
cd ../..
git add .
git commit -m "Hook test commit"

エラーメモ

コマンドでファイル作成後、作業フォルダに戻らず行うと下のようなエラーが出る。

fatal: this operation must be run in a work tree

間接的にファイルを実行しないと下記エラーになった。
Git はシェルスクリプトだと思って呼んでいるが、Windows には sh がないので実行できない。

error: cannot spawn .git/hooks/post-commit: No such file or directory

感想

・初めて行うことだったので苦戦まみれだった。
・文字コード辺りがうまくできなかったので、自分はコマンドですべて解決しました。
・多分、コマンド使わずにできる方もいるだろうから自分の行った順番でパターン化してみました。
・カスタム操作でバッチファイルを設定して手動のみ実施してもよいかもしれないです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?