2016-06-20 2 views
1

私は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

  • ている異なるオペレーティングシステムを使用している場合

答えて

-1

私はあなたが必要とは思いませんパラメータcore.eolを定義するか、ファイルを使用してください3210。 Gitはデフォルトでテキストファイルを適切に検出します。あなたはのgit - SVNでリポジトリを移行する場合は、おそらくそれがすべてで、全体の歴史や修正行末を書き換えることをお勧めしますgithubのページでhttps://help.github.com/articles/dealing-with-line-endings

を見つけることができますどのようにリポジトリ内のすべての行末を修正することにコミット作る方法

コミットします。

+0

Windowsでチェックアウトしたいが、Linuxの行末でチェックしたい。私が理解しているように、デフォルト/推奨の設定は、あなたがチェックアウトした場所のネイティブの行末を常に持っているという逆を達成することです。 – Adam

関連する問題