Gitでタイムスタンプ(Timestamp)をコミット時に変更する

シェアする

  • このエントリーをはてなブックマークに追加

Gitではタイムスタンプ(Timestamp)を保持しないらしいです。
今回、Gitでタイムスタンプをコミット時に変更する方法を調べてみました。

スポンサードリンク

Gitではタイムスタンプを持たない

Subversionでは、use-commit-times=trueというのがあって、コミット時のタイムスタンプを利用できます。
一方、Gitでは、調べる限りタイムスタンプを保持していないので、このようなオプションは存在しないらしいです。

ただ、$ git logでは履歴を表示出来るので、なんとかスクリプトを作って対応してみたいと思います。

スポンサードリンク

Git Bash文字化け対策

Git Bashでは日本語が文字化けするので、まず文字化け対策をします。

(1) Git Bashでlsコマンドの日本語文字化け対策
以下の方法は、http://urashita.com/archives/2594#Git_Bashls にもまとめました。

Git Bashを立ち入力して、以下のコマンドを順番に入力することで、ホームディレクトリに.bashrcを作成します。
(Git Bashの画面で)
$ cd ~
$ touch .bashrc

その後、上記で作成したファイル .bashrc に ls のエイリアスを記述しました。

(ファイル .bashrc に以下を記述)
alias ls='ls --show-control-chars'

(2) Git Bashの日本語設定
Git Bashを立ち上げて、以下のように入力します。

(Git Bashの画面で)
$ git config --global core.quotepath false

 

これでもまだ問題があって、
$ git archive master -o aaa.zip
とかすると、zipファイルの中の日本語ファイルは文字化けするようです。
TortoiseGitではzipファイルにアーカイブするので日本語は文字化けしてしまいます。

この対策はよくわからないので、取りあえずは、zipファイルにarchiveしないようにします。

スポンサードリンク

Gitリポジトリのタイムスタンプを設定するシェルスクリプト

$ git cloneを実行した直下のフォルダにて以下のシェルスクリプトを実行します。

 

$ git ls-files
でファイルの一覧を取得しています。

$ git log --pretty=format:%ci -n1
でそのファイルのコミット日付を取得しています。

まとめ

Gitの内部仕様としてタイムスタンプを保持しないのは理解するとしても、コマンドラインからデフォルトでこれぐらいのオプション用意して欲しいなぁ。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です