1. ホーム
  2. ギット

[解決済み】gitはスペースとタブを自動的に切り替えることができますか?

2022-04-10 21:25:39

質問

私はPythonのプログラムでインデントにタブを使用していますが、代わりにスペースを使用する人と(gitを使用して)共同作業を行いたいと思っています。

プッシュ/フェッチ時に、スペースとタブを自動的に変換する(例えば、スペース4個=タブ1個)方法はないでしょうか?(CR/LFの変換と同じような)

どのように解決するのですか?

ここでは、その完全な解決策を紹介します。

リポジトリに、ファイル .git/info/attributes を含んでいます。

*.py  filter=tabspace

Linux/Unix

では、コマンドを実行してください。

git config --global filter.tabspace.smudge 'unexpand --tabs=4 --first-only'
git config --global filter.tabspace.clean 'expand --tabs=4 --initial'

オーエスエックス

まず、brewでcoreutilsをインストールします。

brew install coreutils

では、コマンドを実行してください。

git config --global filter.tabspace.smudge 'gunexpand --tabs=4 --first-only'
git config --global filter.tabspace.clean 'gexpand --tabs=4 --initial'

すべてのシステム

これで、プロジェクトのすべてのファイルをチェックアウトすることができます。で行うことができます。

git checkout HEAD -- **

で、すべての python ファイルにスペースの代わりにタブが付くようになりました。

編集 : 強制チェックアウトのコマンドを変更しました。もちろん、最初にコミットする必要があります。