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?

More than 5 years have passed since last update.

SourceTree > ターミナル > commit忘れを防ぐ > modifiedの一覧を取得するshスクリプト

Last updated at Posted at 2015-12-28
動作確認
Source Tree 1.6.22.0 on Windows 7 pro

背景

しばらくの日数、現在使用中のPCにアクセスできなくなる時、コミット忘れをして、戻ってきたときに別開発PCで作業したものをマージするなりしないといけなくなり面倒になる。

きちんと手仕舞いしておきたい。

複数プロジェクトにおける修正中のファイルリストを取得したい。

状況

1つの親フォルダに複数のプロジェクトフォルダが含まれる場合での対応をしている。

![](http://yuml.me/diagram/class/[親フォルダ]-->[...], [親フォルダ]-->[PROJECT_2], [親フォルダ]-->[PROJECT_1])

それ以外の場合はfor文の部分を変更が必要 (以下ではPROJECT_A, _Bは取りこぼす)。

![](http://yuml.me/diagram/class/[親フォルダ]-->[...], [親フォルダ]-->[PROJECT_2], [親フォルダ]-->[PROJECT_1], [親フォルダ]-->[WORK], [WORK]-->[PROJECT_A], [WORK]-->[PROJECT_B])

v0.1

手順と実行結果

  1. SourceTreeでターミナルを起動
  2. cd .. で一つ上に移動 (親フォルダへ)
  3. 以下のスクリプトを実行すると、modifiedのファイル(とプロジェクト)が分かる
$ for dir in $(ls); do echo $dir; cd $dir; if [ -d .git ]; then git status | grep modified; fi; cd ..; done
結果(例)
...
PROJECT_1
#     modified:  Project1.res
#     modified:  Unit1.cpp
#     modified:  Unit2.cpp
PROJECT_2
#     modified:  shutdownButton.py
PROJECT_3
PROJECT_4
PROJECT_5
#     modified:  hello_test_exec
...

上記の例ではPROJECT_3とPROJECT_4は何も変更なし。PROJECT_1,2,5で修正したがcommitしてないファイルがあることが分かる。

v0.2

SHELLファイルにした。one linearよりデバッグしやすい。

スクリプトファイル

checkYetToCommit.sh
# !/bin/sh

for dir in $(ls); do 
	echo $dir; 
	cd $dir; 
	if [ -d .git ]; then 
		git status | grep modified; 
	fi; 
	cd ..; 
done

使い方

  1. cd .. (親フォルダへ移動)
  2. sh checkYetToCommit.sh

または chmod +x checkYetToCommit.sh してる場合は

  1. cd .. (親フォルダへ移動)
  2. ./checkYetToCommit.sh

備考

  • MINGW32の find コマンドは -type オプションがないようだ。
    ディレクトリだけ取得というのが分からない
  • commitしたがpushしてない問題は未対応
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?