我在bitbucket.org上有一个git库,方便我在单位和家里的机子上同步代码,但是每次从服务器上拉下来代码都会出现很多修改,重新clone也不行,用文件对比工具查看也没有看到修改。
怀疑是line endings的问题,把git重新安装了下,选择了checkout what,commit what那个选项,仍然不行,求解释求指导,谢谢 o(╯□╰)o
-----补充----
现在确定是line endings问题了,下面是commit的log,一满屏,都是这样的。怎么设置?需要重新安装还是修改配置?
另外这个问题是什么原因导致的呢?我两台机子上设置的一样呀,难道是服务器给转了?
The file will have its original line endings in your working directory.
warning: CRLF will be replaced by LF in src/Presentation.Seedwork/Resources/Mess
ages.Designer.cs.
The file will have its original line endings in your working directory.
37 files changed, 3234 insertions(+), 3234 deletions(-)
我想大声告诉你2017-04-25 09:05:49
あなたの説明によると、あなたの会社とご自宅では異なるオペレーティング システムを使用しているようです。改行文字の違いにより、Git はファイルの内容が変更されたと判断します。これを設定すると、Git がインテリジェントに変換できるようになります:
Windows システムでは、Git をインストールするときに、オプション core.autocrlf
を true
に設定する必要があります。これは、次の図に示されています。 core.autocrlf
为 true
,也就是下图所示的那一个:
在 Linux/Unix/Mac 系统下,一般来说保持默认设置就好了(没有安装界面供选择)。当然你可以手工编辑 ~/.gitconfig
设 core.autocrlf
为 input
,如我机器上的设置:
以上两种设置最终的结果就是提交的时候 Git 总是将换行符自动转为 LF
,并且在 Windows 下 checkout
回来时自动帮你转换为 CRLF
,以便适应 Windows 下的编辑器。
如果你做了上述设置依然会碰到题目中描述的问题,那么不用想,一定是你的团队中另外有别的成员没有做对以上两点的设置(很大的可能性是使用 Windows 的),你们可以逐一排查。
另外,安装 Windows Git 时另外一个设置也比较让人费解,建议选下图这样的:
选择这种,所需要的配置量最少,CLI 和 Linux 的兼容性也比较高,唯一的缺陷就是 Windows CLI 里和 Linux 重名的命令会被 Linux 版本覆盖掉,比如 find
~/.gitconfig
を手動で編集し、私のマシンの設定のように core.autocrlf
を input
に設定することもできます。LF
に自動的に変換し、Windows コードで checkout
から戻るときに自動的に < に変換します。 >CRLF を使用して Windows のエディタに適応させます。 🎜
🎜上記の設定を行っても、質問に記載されている問題が引き続き発生する場合は、それについて考えないでください。チームの他のメンバーが上記 2 つの点の設定を行っていない可能性があります (おそらく、そうなっている可能性が高いです)。 Windows を使用する場合))、それらを 1 つずつ確認できます。 🎜
🎜さらに、Windows Git をインストールするときの別の設定もわかりにくいため、以下に示す設定を選択することをお勧めします。
🎜🎜
🎜このオプションを選択すると、必要な設定は最小限で、CLI と Linux 間の互換性は比較的高くなります。唯一の欠点は、Windows CLI と Linux で同じ名前のコマンドが Linux バージョンによって上書きされることです。 code>find など。私の意見では、Windows CLI はとにかくゴミであり、それがカバーされているかどうかは問題ではありません。 🎜