私はWindowsとLinuxの両方で開発します。私のLinux開発環境は、私のWindowsホスト上で動作するバーチャルボックスです。私はいくつかのディレクトリを共有しています(実際には、組み込みのバーチャルボックスの共有フォルダではなく、内蔵の仮想ボックス共有フォルダではありません)。gitのためにすべての行末を強制的にLFにする
私たちはsvnからgitに移行しています。私はバージョン管理を行うために私のWindowsマシン(Linuxはヘッドレス)でソースツリーを実行したい。しかし、私はすべてのファイルがLinuxの行末(LF)を持っていることを望みます。
私はForce LF eol in git repo and working copyの指示に従って試してみましたが、私のために働いていません。
次のように私は設定を設定している:
[[email protected] scripts]$ git config core.autocrlf
input
[[email protected] scripts]$ git config core.eol
lf
私は私の.gitattributesで、次の(テキストfiolesなるようにしても強制的.SHをして、再度EOLを指定)が
* text=auto
*.sh text eol=lf
Iそこに指定されたcheckout-indexコマンドを実行しましたが、私はまだWindowsの行末で.shファイルを持っています!
[[email protected] scripts]$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
[[email protected] scripts]$ git checkout-index --force --all
[[email protected] scripts]$ ./EWEB/get_unmerged.sh
-bash: ./EWEB/get_unmerged.sh: /bin/bash^M: bad interpreter: No such file or directory
何が欠けていますか?それとも私はそれに近づいていますか?あなたは推奨設定は、Linux/MAC git config --global core.autocrlf input
ため
- 窓用
$ git config --global core.autocrlf true
ている異なるオペレーティングシステムを使用している場合
Windowsでチェックアウトしたいが、Linuxの行末でチェックしたい。私が理解しているように、デフォルト/推奨の設定は、あなたがチェックアウトした場所のネイティブの行末を常に持っているという逆を達成することです。 – Adam