- 投稿日:2020-04-07T23:10:26+09:00
「git cloneしたソースコードの作業ブランチを切り替えて」と言われたので先輩に教わりながらやってみた
この記事を書いた理由
入社2週目でリモートワークが始まり、チャットで「昨日git cloneしたソースコードの作業ブランチ切り替えて」と言われたのですが、頭の中は「?」だらけだったので、この記事に残します。
先輩社員から実行すべきGitコマンドは教えていただいたのですが、そのまま実行するのも自分のレベルアップのためにならないかなと思い、調べた結果自分以外の人にもわかりやすいようにまとめてみます。
行った手順
この記事では「branchAというリモートで作成されたブランチをローカルに持ってきてその作業ブランチに切り替える」ために行った手順を書きます。
git fetchでリモートの情報を取得する
元々masterブランチのソースコードを
git clone
していたので、まずはリモートリポジトリで新たに作成されたbranchAの情報を取得します。$ git fetch
git fetch
コマンドの詳しい内容はこちらの記事がわかりやすいです↓
git fetchの詳しい説明はこちらgit checkoutコマンドでローカルの作業ブランチを切り替える
実際に作業ブランチをmaster→branchAに切り替える
$ git checkout -b branchA origin/master上のコマンドにより、branchAブランチがローカルに作成され、作業ブランチがbranchAに切り替わる。
git checkout -b
コマンドは以下のように使う。$ git checkout -b {作成して切り替えたいローカルブランチ名} origin/{起点とするリモートブランチ名}
git checkout -b
コマンドはローカルに新しいブランチを作成し、作業ブランチを作成したブランチに切り替える。
git checkout -b
コマンドは以下のコマンドを1回で行うことができる。//git branchコマンドで新たにブランチを作成する $ git branch branchA origin/master //git checkoutコマンドで作業ブランチを切り替える $ git checkout branchA
git checkout
コマンドの詳しい内容はこちらの記事がわかりやすいです↓
git checkoutコマンドの詳しい説明はこちらgit branchコマンドで現在の作業ブランチを確認する
以下のコマンドで現在の作業ブランチを確認する。
$ git branchターミナルに以下の通り表示され、masterブランチからbranchAにブランチが切り替わっているにがわかる。
(*がついているのが現在の作業ブランチ)* branchA masterおわりに
この作業は今後も使いそうなので都度確認しようと思います。
ブランチの概念についてまだまだ理解が甘いと自覚しているのでそこも勉強していきます。
完全未経験から実務に入って2週間目ですが、Gitの知識はないとマズいな実感しています。
頑張ります!泣
- 投稿日:2020-04-07T20:00:25+09:00
【超図解】OSSにPull Requestを出す時の備忘録
OSS(Open Source Software)のコミュニティー(本家)のリポジトリにPull Requestを出す時にいつも手順が分からなくなってしまいます1。例によって調べながらやりますが、ページによって記載がまちまちだったりします。そこで備忘録として手順をまとめておくことで迷わずスムーズにPull Requestを出せる様にしておこうと思いました。また、ただGitのコマンドを羅列しただけの備忘録では無く、実際にVega EditorというOSSにコントリビュートしてみた行程をまとめて残しておこうと思います。
OSSのリポジトリをForkする
今回はVega EditorというOSSにコントリビュートしてみようと思います。たまたま今回この記事を執筆するタイミングで修正箇所が有った為、選択したという次第です。Forkを実施するためにまずはOSSのGitHubのリポジトリ2にアクセスします。OSSのリポジトリを自分のGitHubアカウントにForkして自分リポジトリとして扱える様にします。Forkの方法は下図の赤丸の
Fork
ボタンをクリックするだけです。Forkしたリポジトリのクローン
Forkしたリポジトリは
自分のユーザー名/リポジトリ名
3という名前が付きます。このリポジトリにまず修正を反映します。修正作業を行うためにリポジトリをローカルにクローンします。下図のClone or download
をクリックします。ここで、パスワード認証(HTTP)かSSH認証によってURLが異なります。URL横のクリップボードマークをクリックすることでURLをコピー出来ます。今回の検証に使っているリポジトリでは以下のコマンドになります。
git clone git@github.com:y-vectorfield/editor.gitUpstreamブランチ情報の登録
これ以降登場する用語の早見表をまず掲載します。これは所謂どこのリポジトリを指しているかのエイリアスの様な物です。
エイリアス 指しているリポジトリ リモート(origin) 自分のアカウントのリモートリポジトリ4 ローカル 自分のローカル作業環境上のリポジトリ upsteream OSS本家のリポジトリ5 それでは本家のリポジトリを
upstream
としてgit config
に登録します。URLは本記事での例です。git remote add upstream https://github.com/vega/editor登録結果を確認します。
git config -l
末尾に以下の内容が追加されていれば成功です。
remote.upstream.url=https://github.com/vega/editor remote.upstream.fetch=+refs/heads/*:refs/remotes/upstream/*修正を反映し、Commit & Push
修正用のブランチに必ずスイッチしてからローカルで修正を行い、まずリモートリポジトリに修正を反映させます。今回は
docker-compose.yml
にrestartオプションを追加する修正を行います。OSSのコミュニティーによってContributionルール(ブランチ名の付け方、commitメッセージの書き方等を指定)を定めている場合はルールに則ります。
$ git checkout -b add-restart-option Switched to a new branch 'add-restart-option'version: "3.7" services: editor: init: true build: . ports: - "8080:8080" volumes: - "./src:/usr/src/app/src" + restart: "always"この修正が反映されることで、マシーンの再起動後必ずコンテナが再起動する様になります。後はリモートにcommit & pushを実施します。
$ git add . $ git commit -m "Add restart option into docker compose yml file" $ git push origin add-restart-optionPull Requestをコミュニティー(本家)に提出
Compare & pull request
をクリックします。Pull Requestに添付するコメントを入力する画面が表示されます。コメント後Create pull request
をクリックし、提出します。提出後、多くの場合テストやフォーマットチェックなどが実行されます。完了すると下図の様な表示となります。
無事Mergeされました
Pull Requestが無事
Merge
(採用)されました!!これでOSS本家のリポジトリに修正が反映されました。Merge後のupstreamの内容をローカル, リモートに反映
無事Pull RequestがMergeされたので、その内容を
ローカル
とリモート(origin)
に反映します。この行程は今後Pull Requestを出す時に、コミュニティーのリポジトリが更新されていた(手元のリポジトリが古い)場合にも実施します。ローカルブランチが
master
にチェックアウトされて居ない場合はチェックアウトします。git checkout masterまずupstreamの最新版の内容を
fetch
します。git fetch upstream
ローカルのmaster
ブランチにupstream
の内容をmerge
します。git merge upstream/master --ff-only
最後に
リモートのmaster
ブランチに更新を反映します。git push origin master -u
下図の様にコミュニティーのリポジトリ(upstream)とリモートリポジトリが同じ状態になりました。
まとめ
OSSのコミュニティーにPull Requestを出す手順を備忘録を兼ねてまとめてみました。これでGitの仕様が変更にならない限りは操作に困らなくなります。
Reference
業務等で頻繁にPull Requestを出しておられる方には何でも無いことなのかもしれませんが、趣味でやっているため、どうしても断続的になりがちです。。。 ↩
本記事の場合: https://github.com/vega/editor ↩
筆者の場合: y-vectorfield/editor ↩
本記事の場合: https://github.com/vega/editor ↩
- 投稿日:2020-04-07T18:37:57+09:00
GitHubでリモートとローカルのコミット時間がずれるとき
はじめに
開発環境については以下の通りです。
OS:CentOS
仮装環境:vagrant事象
今回、一人でアプリケーションを作成している最中に
ローカル環境からGitHub上にあげたコミットメッセージの日付が2日前の日付で更新されるという現象が起きました。
解決するまでの流れを備忘録として残しておきます。解決までの流れ
まず、GitHub上で何か悪さしているのではないかと思い、「git 日時ずれる」などで検索かけてみましたが、日付が9時間ずれている場合の対処などは見つけることができましたが、2日もずれるという記事が全然見つかりませんでした。
git上での日時がずれる事象の記事を読んでいる時に、ntpというワードがでてきたので、これはgitではなく仮装環境のvagrantの設定日時がおかしいという事に気がつきました。
仮装環境に入りターミナルで以下確認すると、確かに2日前の日付となっており、
ここを変えてあげれば改善することが分かりました。(正常日時は2020/4/7 17:30頃)$ date Sun Apr 5 07:22:16 UTC 2020対処法
vagrant関連で検索を行うと、すぐに対処法に辿りつくことができました。
結論からいうと今回の事象は、システム時刻がUTCになってしまっていることが原因でした。UTCになっているかいないかは、以下で確認ができます。
$ date Sun Apr 5 07:22:16 UTC(←ここで確認できます。) 2020
今回行なったことは、仮装環境上で以下2つのコマンドを実行しました。$ sudo rm /etc/localtime $ sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime①「etc」配下にある「localtime」ファイルを削除
②「/usr/share/zoneinfo/Asia/Tokyo」のシンボリックリンクを「etc」配下に「localtime」として作成する。
vagrantを再起動し、確認する。
$ date Tue Apr 7 18:36:26 JST 2020UTCからJSTに変更されたことと、日時も問題なく戻りました。
軽く補足。UTCとJSTについて
UTCは”Universal Time”の略で、世界共通の標準時間と定めているもの。
JSTは”Japan Standard Time”の略で、日本の標準時間と定めているもの。
上記の通り、それぞれ大きく違いがあります。
- 投稿日:2020-04-07T17:15:32+09:00
各ソフトウェアのインストール方法
はじめに
この記事では以下のソフトウェアのインストール方法を紹介します.
- SSHクライアント( OpenSSH )
- git
- Atom
- Atom Package
SSHクライアント
まずSSHクライアントがインストールされているかどうかを確認する.
Windowsの人はコマンドプロンプト,Macの人はターミナルを起動して以下のコマンドを入力するssh -V
以下のような出力がされれば,SSHクライアントがインストールされている.
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5 # Windowsの人 OpenSSH_7.9p1, LibreSSL 2.7.3 # Macの人 Open SSH_8.0p1 Ubuntu-6build1, ... # Linux(Ubuntu)の人
SSHクライアントがインストールされていない人は以下の操作を実行してください.(主にWindows8の人)
Windows8の人
- コマンドプロンプトを起動する
systeminfo
と入力する- 「システムの種類」が
x64_based PC
かx86_based PC
かを確認- SSHのダウンロードページにアクセス
- システムの種類に合わせてzipフォルダをダウンロードする
x64_based PC
の人:OpenSSH-Win64.zipx86_based PC
の人:OpenSSH-Win32.zip- ダウンロードしたzipフォルダをダブルクリックして,表示されるフォルダをC:/にコピー
- スタート画面の検索欄に
環境変数
と入力し,システム環境変数の変数
を選択システム環境変数
中のPath
を選択し,編集
ボタンをクリック- 変数値の末尾に
;OpenSSH-Win64
または;OpenSSH-Win32
と入力してOKをクリック- コマンドプロンプトを開き直して
ssh -V
でインストールできたか確認する
- このとき画面・文字サイズが小さくなった場合はウィンドウ左上のアイコンをクリックしてプロパティを選択し,フォントタブからフォントをConsolas,サイズを24に設定する
sshの設定(公開鍵認証)
コマンドプロンプト,またはターミナルを開いく.
カレントディレクリがホームであることを確認して,以下のコマンドを実行するmkdir .ssh cd .ssh ssh-keygen
ssh-keygen -t rsa
と入力した後
Enter file in which to save the key
と聞かれたらEnterを押す- あとはEnterを押していく
- ~/.ssh以下に
id_rsa
とid_rsa.pub
ができていることを確認する
- Windowsの人:
dir .ssh
と入力- Mac/Linuxの人:
ls .ssh
と入力- 以下のコマンドで
id_rsa.pub
をサーバーに転送する.login_nameとserver_urlは指示されたものを入力してください.ssh login_name@server_url "cat >> ~/.ssh/authorized_keys" < id_rsa.pub
コマンドを入力したらEnterを押して,指示されたパスワードを入力(キーを打っても表示されませんが,入力されています).途中で何か聞かれたら
yes
と入力してEnterを押してください.gitのインストール
gitのダウンロードページにアクセスし,自分のOS用のインストーラをダウンロードする
インストーラを実行し,
next
をクリックしていきinstall
ボタンを押す
コマンドプロンプト/ターミナル で
git --version
と入力し,インストールできたか確認する.versionが表示されれば成功!
そうでない場合は,gitのPATHを通す必要がある.
gitを利用するため,ユーザー名とメールアドレスを設定する.自分でgitを使わないのであれば適当な値で良いので,コピペしてEnterを押す
git config --global user.name "John Doe" git config --global user.email johndoe@example.comユーザー名が日本語の人はインストール場所をホームディレクトリにする!!!!
Windowsの場合,C¥Program Filesには権限の問題でインストールできなかった.Atomのインストール
Atomのダウンロードサイトにアクセス
Download
ボタンを 押してダウンロードする.Windowsの人はインストーラをダブルクリックして実行し,インストールする.
Macの人はアプリをアプリケーションフォルダにコピーする.Atom Packageのインストール
Windowsの人はコマンドプロンプト,Mac/Linuxの人はターミナルを開く.
以下のコマンドコピペしてEnterを押す.cd ~/.atom/packages git clone https://github.com/kenglwo/atom-package
Atomを起動すれば自動的にPackageが読み込まれる.
- 投稿日:2020-04-07T17:15:32+09:00
Atomパッケージの利用・そのために必要なソフトウェアのインストール方法
はじめに
この記事ではまず授業で利用するAtomパッケージを使うために必要な,以下のソフトウェアのインストール方法を紹介します.その後にAtomパッケージの使い方をまとめています.
- SSHクライアント( OpenSSH )
- git
- Atom
- Atom Package
SSHクライアント
まずSSHクライアントがインストールされているかどうかを確認する.
Windowsの人はコマンドプロンプト,Macの人はターミナルを起動して以下のコマンドを入力するssh -V
以下のような出力がされれば,SSHクライアントがインストールされている.
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5 # Windowsの人 OpenSSH_7.9p1, LibreSSL 2.7.3 # Macの人 Open SSH_8.0p1 Ubuntu-6build1, ... # Linux(Ubuntu)の人
SSHクライアントがインストールされていない人は以下の操作を実行してください.(主にWindows8の人)
Windows8の人
- コマンドプロンプトを起動する
systeminfo
と入力する- 「システムの種類」が
x64_based PC
かx86_based PC
かを確認- SSHのダウンロードページにアクセス
- システムの種類に合わせてzipフォルダをダウンロードする
x64_based PC
の人:OpenSSH-Win64.zipx86_based PC
の人:OpenSSH-Win32.zip- ダウンロードしたzipフォルダをダブルクリックして,表示されるフォルダをC:/にコピー
- スタート画面の検索欄に
環境変数
と入力し,システム環境変数の変数
を選択システム環境変数
中のPath
を選択し,編集
ボタンをクリック- 変数値の末尾に
;OpenSSH-Win64
または;OpenSSH-Win32
と入力してOKをクリック- コマンドプロンプトを開き直して
ssh -V
でインストールできたか確認する
- このとき画面・文字サイズが小さくなった場合はウィンドウ左上のアイコンをクリックしてプロパティを選択し,フォントタブからフォントをConsolas,サイズを24に設定する
sshの設定(公開鍵認証)
コマンドプロンプト,またはターミナルを開いく.
カレントディレクリがホームであることを確認して,以下のコマンドを実行するmkdir .ssh cd .ssh ssh-keygen
ssh-keygen -t rsa
と入力した後
Enter file in which to save the key
と聞かれたらEnterを押す- あとはEnterを押していく
- ~/.ssh以下に
id_rsa
とid_rsa.pub
ができていることを確認する
- Windowsの人:
dir .ssh
と入力- Mac/Linuxの人:
ls .ssh
と入力- 以下のコマンドで
id_rsa.pub
をサーバーに転送する.login_nameとserver_urlは指示されたものを入力してください.ssh login_name@server_url "cat >> ~/.ssh/authorized_keys" < id_rsa.pub
コマンドを入力したらEnterを押して,指示されたパスワードを入力(キーを打っても表示されませんが,入力されています).途中で何か聞かれたら
yes
と入力してEnterを押してください.gitのインストール
gitのダウンロードページにアクセスし,自分のOS用のインストーラをダウンロードする
インストーラを実行し,
next
をクリックしていきinstall
ボタンを押す
コマンドプロンプト/ターミナル で
git --version
と入力し,インストールできたか確認する.versionが表示されれば成功!
そうでない場合は,gitのPATHを通す必要がある.
gitを利用するため,ユーザー名とメールアドレスを設定する.自分でgitを使わないのであれば適当な値で良いので,コピペしてEnterを押す
git config --global user.name "John Doe" git config --global user.email johndoe@example.comユーザー名が日本語の人はインストール場所をホームディレクトリにする!!!!
Windowsの場合,C¥Program Filesには権限の問題でインストールできなかった.Atomのインストール
Atomのダウンロードサイトにアクセス
Download
ボタンを 押してダウンロードする.Windowsの人はインストーラをダブルクリックして実行し,インストールする.
Macの人はアプリをアプリケーションフォルダにコピーする.Atomパッケージのインストール
Atomのパッケージが管理されているGithubリポジトリにアクセスする.
①"Clone or Download",②Download ZIPの順にクリックしてパッケージ(atom-package-master)をダウンロードする.
"ダウンロード"フォルダにあるatom-package-masterをコピーして,ホームディレクトリ下の.atom/packagesにペーストする.
Macの人で隠しフォルダ(.atom)が見えていない人は,Command-Shift-. で見えるようになる,
Windowsの人はコマンドプロンプト,Mac/Linuxの人はターミナルを開く.
以下のコマンドをコピペしてEnterを押す.cd ~/.atom/packages git clone https://github.com/kenglwo/atom-package
Atomを起動すれば自動的にPackageが読み込まれる.
Atom パッケージの使い方(設定方法)
- 投稿日:2020-04-07T16:07:54+09:00
社内ネットワークが自己証明書を使っていてあらゆるインストールで「SSL Certificate Error」が出る時の対処法
つよつよエンジニアの皆さんは自己証明書を使っている会社なんかでは働いていないとは思いますが、私のようなクソザコエンジニアはこのような悲惨な環境で働いているわけであります。
さて、この度プロジェクトの環境構築でSSLエラーが頻発しまくり、四苦八苦しながらなんとか対処したのでまとめていきたいと思います。apt
apt.confというファイルを作り、それをUbuntu/Debianの
/etc/apt/apt.conf
と差し替えます。apt.confAcquire::http::Proxy "false";Dockerfileの例はこんな感じ
COPY ./docker/app/apt.conf /etc/apt/apt.confこれで普通に
apt install
が使えるようになります。Git
SSLチェックをやめさせます。
git config --global http.sslVerify falsePython
pipのコマンドオプションで「信用できるドメインを指定」することで対処します。
pip install --trusted-host=pypi.org --trusted-host=pypi.python.org --trusted-host=files.pythonhosted.org django残念ながら同じようなオプションはPoetryやpipenvでは見つけることができませんでした。。。
NodeJS
これもSSLの厳格なチェックをやめさせることで対処します。
npm config set strict-ssl false yarn config set strict-ssl falseVSCodeのプラグイン(!?)
VSCodeの中身はElectronであり、プラグインはJSのソースによって作られるため、NodeJSの環境変数に
NODE_TLS_REJECT_UNAUTHORIZED
を入れたら動くだろうと目論んだらその通りに行きました。
私の場合では特にremote-containerのインストールでエラーが起きました。
- C:\Users\ユーザーID\.vscode\extensions\ms-vscode-remote.remote-containers-0.94.0\dist\extension.jsを開く
- 先頭に以下のコードを追加
process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0;
ms-vscode-remote.remote-containers-0.94.0
のプラグイン名やバージョン情報の部分は適時読み替えてください。以上です。
- 投稿日:2020-04-07T15:03:27+09:00
【Git】Gitで現在のbranchを環境変数にセットする方法
方法
現在
develop
ブランチにいるとして下記を実行します。$ export CURRENT_BRANCH="$(git branch --contains | cut -b 3-)" $ echo $CURRENT_BRANCH develop
develop
ブランチが$CURRENT_BRANCH
にセットされました。何をやっているか
$ git branch --contains * develop特定のコミットが所属するブランチを探す --contains を使えば、「現在のコミットの所属するブランチ」に絞り込むことができるので、今いるブランチが分かります。(ただし、今のコミットを含むブランチが複数あるときはあんまり意味ないです。当たり前ですが。)
--contains
は自動的にHEADを参照します。これで現在のブランチを出力します。
ただこのままだとカレントブランチを表す*
が含まれたままです。| cut -b 3-これでパイプで渡された標準出力の3バイト以降を出力します。
* develop
ではd
行こうが3バイト目なのでd
以降が出力されます。最後に
$()
で囲った処理を実行してexoprt CURRENT_BRANCH
でCURRENT_BRANCH
にセットします。$ export CURRENT_BRANCH="$(git branch --contains | cut -b 3-)"参考
- 投稿日:2020-04-07T00:43:38+09:00
GitHubでゼロからコードを公開するまで【初心者】
はじめに
この記事ではwindows環境において、Git、GitHubを用いたコードの公開までの流れをまとめます。
GitHubのアカウント作成
・GitHubの公式からアカウントを作成する (https://github.co.jp/)
Gitのダウンロード
・「git for windows」の公式サイトよりインストーラーのダウンロードを行う(https://gitforwindows.org/)
・インストーラーの指示に従いダウンロードを完了させる
ここからはダウンロードしたファイル内の「Git Bash」を使用していきます。Gitの設定
・Git Bashを起動し、まずはGitで使用する名前とメールアドレスを設定する
$ git config --global user.name "名前" $ git config --global user.email "メールアドレス"SSH Keyの設定
・次のように実行してSSH Keyを作成する
$ ssh-keygen -t rsa -C "メールアドレス"Generating public/private rsa key pair. Enter file in which to save the key (Users/ユーザーネーム/.ssh/id_rsa):・上のようなメッセージが出たら、Enterキーを押す
・その後にパスワードを入力する (このパスワードは後に使用するので忘れないようにする)
パスワードの入力後、randmart image が表示されたら成功です。公開鍵の登録
・GitHubのアカウント → setting → SSH and GPG keys →SSH keys よりNew SSH Keys ボタンを押す
・タイトルをつけ、Keyの部分には公開鍵の内容をコピー&ペーストする
公開鍵の内容は以下のようにして参照できます。$ cat /c/Users/ユーザーネーム/.ssh/id_rsa.pub ssh-rsa (公開鍵の内容)= メールアドレス・登録が完了するとメールが届く
以上の設定を行えば、先ほど自分で設定したパスワードを用いて、GitHubに向けた認証と通信が可能になります。・次のように実行する
下のようなメッセージが表示されたら成功です。$ ssh -T git@github.comHi 名前! You've successfully authenticated, but GitHub does not provide shell access.コードの公開
コードの公開は次の3ステップで完了します。
①clone
・GitHubでリポジトリを作成する
・cloneする際の指定パスをSSH形式で控えておく・次のように実行する。
$ git clone 指定パス $ cd リポジトリ名完了すると、PC内(ローカル)にフォルダが生成されます。
②commit
・公開したいファイルまたはフォルダを、クローンしたローカルのフォルダに移動させる
・次のように実行する、任意のメッセージの箇所は"Add ファイル名"などとする$ git add ファイル名、または、"フォルダ名" $ git commit -m "任意のメッセージ"③push
・次のように実行する
$ git pushこの操作によってGitHub側のリポジトリが更新されます。
これでGitHubにコードが公開されました!
- 投稿日:2020-04-07T00:06:34+09:00
SourceTreeやIDEのプラグインでも.gitmessageのコメントアウトを使用できるようにする
背景
チーム開発をしていると、コミットメッセージにもルールを設けておきたくなる。
そういう時に便利なコミットテンプレート。
.gitmessage
を追加すれば、コミット時に定型文を表示してくれる。プロジェクトでEmoji Prefixを導入したため、
文化に慣れるまでは絵文字の役割や入力方法などを覚えるのが手間だったこともあり、テンプレートを設定しておきたくなった。しかし、(普段僕はCLIでGitを操作するので知らなかったのだが)SourceTreeやIDEプラグインといった、
GUIでのコミットには.gitmessage
のコメントアウトが反映されないとのこと。
参考:https://qiita.com/mfks17/items/e68adc058e1a9e519807#-todoチーム内ではGUIでGit操作を行っているメンバーもいるため、環境に依存してテンプレートが使えない人が出てくるのを避けたい。
何とかできないか調査した。結論
↓を、
.git
が格納されているディレクトリで入力する。git config --add commit.cleanup strip
グローバルに設定したくなければ
--local
オプションをつけるなり、includeIf
セクションで分岐させるなりすればよい。
もちろん.gitconfig
に直接書いてもよい。[commit] cleanup = strip何をやっているのか?
--cleanup=<mode>
オプションは、コミットする前にコミットメッセージを整形する方法を指定する。Git | git-commit-Documentation
変数の種類
strip
先頭と末尾の空白行、末尾の空白、コメント(
#
が前頭についた行)を削除する。
whitespace
先頭と末尾の空白行、末尾の空白を削除。ただし、コメントを削除しない。
SourceTreeの設定はデフォルトでコレかdefault
になっている可能性がある。
default
メッセージを編集するときは
strip
、それ以外の時はwhitespace
が適用される。
verbatim
メッセージを変更しない。
scissors
基本的に
whitespace
と同じだが、# ------------------------> 8 ----------------------- -
というコメント以下の行がすべて削除される。
SourceTreeで設定する方法
GUIツールでGitを操作している人の中にはCLIに苦手意識を持っている人もいるので、操作手順をまとめた。
- 作業するリポジトリをSourceTreeで開く
- 右上の「設定」>「コミットテンプレート」からコミットテンプレートを設定。設定する範囲はプロジェクトや開発ルールに合わせて
- CLIでリポジトリの場所まで移動
git config --add commit.cleanup strip
を入力cd path/to/dir # path/to/dir をテンプレートを適用するリポジトリの場所に変更する最後に
コミットメッセージはキレイにしましょう
参考
Gitのコミットコメントを絵文字Prefixにして楽しく開発する | Qiita
Emojiで楽しく綺麗なコミットを手に入れる | Goodpatch Blog