相关疑难解决方法(0)

git用CRLF代替LF

使用bash在Windows XP计算机上运行git.我从SVN导出了我的项目,然后克隆了一个裸存储库.

然后我将导出粘贴到裸存储库目录中,并执行了:

git add -A
Run Code Online (Sandbox Code Playgroud)

然后我得到一条消息列表:

LF将由CRLF取代

这种转变的后果是什么?这是Visual Studio中的.NET解决方案.

git

777
推荐指数
20
解决办法
56万
查看次数

如何解决git说"在合并之前提交更改或存储它们"?

我在我的本地计算机上做了一些更新,将它们推送到远程存储库,现在我正在尝试将更改提取到服务器并获取消息;

错误:合并将覆盖对以下文件的本地更改:

的wp-content/W3TC-配置/ master.php

请在合并之前提交更改或存储更改.

所以我跑了,

git checkout -- wp-content/w3tc-config/master.php
Run Code Online (Sandbox Code Playgroud)

并再次尝试,我收到相同的消息.我假设w3tc在服务器上的配置文件中改变了一些东西.我不关心本地副本或远程副本是否在服务器上(我认为远程副本是最好的),我只是希望能够合并其余的更改(插件更新).

有任何想法吗?

git

678
推荐指数
13
解决办法
88万
查看次数

Git最好的CRLF(回车,换行)处理策略是什么?

我尝试使用CRLF结束行提交文件,但失败了.

我花了整整一天的时间在我的Windows计算机上尝试不同的策略,几乎被迫停止尝试使用Git而是尝试使用Mercurial.

每个答案只能分享一个最佳实践.

git cross-platform newline eol

588
推荐指数
9
解决办法
20万
查看次数

尝试使用git filter-branch修复行结尾,但没有运气

我被git用Windows/Linux行结束问题所困扰.看来,通过GitHub,MSysGit和其他来源,最好的解决方案是让你的本地存储库设置为使用linux风格的行结尾,但设置core.autocrlftrue.不幸的是,我没有及早做到这一点,所以现在每次我进行更改时,行结尾都会被剔除.

我以为我在这里找到了答案,但我无法让它为我工作.我的Linux命令行知识充其量是有限的,所以我甚至不确定"xargs fromdos"行在他的脚本中做了什么.我不断收到关于没有这样的文件或目录的消息,当我设法将它指向现有目录时,它告诉我我没有权限.

我在Windows上通过Mac OS X终端尝试使用MSysGit.

git newline line-endings msysgit

266
推荐指数
3
解决办法
6万
查看次数

即使内容相同,Git状态也会将文件显示为已更改

我从其他人那里收到了git checkout,并尝试将未分级的更改提交到本地存储库.但是,即使内容完全相同,很多(如果不是每个)文件也会显示为已修改.

我已经设置core.fileMode为false并且设置core.autocrlf为false,但没有成功.

值得一提的是,我收到的Git repo来自使用Windows的人,而我使用的是Linux.

如何进行实际更改?

编辑:输出git config -l:

user.name=Aron Rotteveel
user.email=<removed>
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=auto
color.ui=true
color.pager=true
color.branch.current=yellow reverse
color.branch.local=yellow
color.branch.remote=green
color.diff.meta=yellow bold
color.diff.frag=magenta bold
color.diff.old=red bold
color.diff.new=green bold
color.status.added=yellow
color.status.changed=green
color.status.untracked=cyan
core.pager=less -FRSX
core.whitespace=fix,-indent-with-non-tab,trailing-space,cr-at-eol
alias.co=checkout
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
core.hidedotfiles=dotGitOnly
core.autocrlf=false
remote.origin.url=<removed>
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
Run Code Online (Sandbox Code Playgroud)

更新:添加了一些随机示例文件.这些文件只是纯文本,因此最容易包含.

原始文件位于:https://gist.github.com/c3c5302430935155ef3d.Hexdumps肯定表明文件不同,但我不知道是什么导致这个,以及如何解决它.

HEAD版本:

0000000: 4854 4d4c 2e53 6166 654f 626a 6563 740d  HTML.SafeObject.
0000010: 0a54 5950 453a …
Run Code Online (Sandbox Code Playgroud)

git

168
推荐指数
11
解决办法
13万
查看次数

git commit得到致命错误"致命:CRLF将被LF取代"

我正在使用Ubuntu 13.10 x64,我正在开发一个开发人员正在使用Windows的项目,我最近将git配置更改core.eol为"lf"和core.autocrlf"input"以及core.safecrlf"true".从那时起,当我尝试将文件提交到我的本地存储库时,我得到了这个错误:
fatal: CRLF would be replaced by LF in ......
根据我的理解,如果我设置core.eol为"lf"和core.autocrlf"输入",git会自动将CRLF转换为LF,但为什么会出现此错误出来吗?我该如何解决这个问题?

谢谢.

git eol

75
推荐指数
5
解决办法
7万
查看次数

Git状态忽略行结尾/相同文件/ windows和linux环境/ dropbox/mled

我该怎么做

git状态

忽略行结束差异?

背景资料:

我随机使用Windows和Linux来处理项目.该项目在Dropbox中.

我发现了很多关于如何使git diff忽略行结尾.因为我使用meld git diff打开每个文件的meld.并且meld说"相同的文件".

那么我该如何避免这种情况呢.Git应该只为已更改的文件打开meld.如果只有文件结尾不同,git status不应该将文件报告为已更改.

编辑:原因:

这是因为Windows上的此设置

core.autocrlf是的

所以我在Linux上检查了工作副本,并在Windows上设置了core.autocrlf false.

知道如何使git status忽略不同的新行仍然是一件好事.

linux windows git status line-endings

68
推荐指数
7
解决办法
8万
查看次数

使用代码分发git配置

在尝试为开发人员标准化平台时,我的一个需求是提交,.git/config以便每个人都有相同的CRLF配置,而不会忘记手动设置它.

我该如何设置?

我对所有这些消极情绪感到担忧autocrlf.如果不起作用,为什么不删除此功能?要么这个功能的制作者被误解,要么他们用它做了一个失败的实验,它应该被删除,以阻止更多的人浪费他们的时间(阅读模糊的手册页,提问,回答这些问题的人等).

git

43
推荐指数
2
解决办法
3万
查看次数

Git,将文件添加到存储库会给LF - > CRLF带来致命错误

我是git的新手,我需要一些帮助.我在windows上使用msysgit.

当我执行命令时,git add [folderName]我得到了响应:

fatal: LF would be replaced by CRLF in [.css file or .js file]
Run Code Online (Sandbox Code Playgroud)

然后,如果你尝试做一个提交没有任何反应.

$ git commit
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       so01/
nothing added to commit but untracked files present (use "git add" to track)
Run Code Online (Sandbox Code Playgroud)

其中一些css/js文件是从网上下载的,所以我猜这就是为什么有LF.如果我打开文件并剪切/粘贴内容,那么我会在下一个文件上收到错误,依此类推.

任何帮助都感激不尽.

编辑

设置core.autocrlf为false似乎可以解决问题,但我在很多帖子上都没有将此选项设置为false.

有人能指出我在哪里可以找出在这种情况下可能出现的问题?

git version-control newline msysgit core.autocrlf

40
推荐指数
3
解决办法
3万
查看次数

SourceTree App即使对于新克隆的存储库也说未提交的更改 - 可能是错的?

远程git仓库只是克隆使用本地箱Atlassian的SourceTree.即使工作树中没有真正修改过任何文件,Atlassian也会立即在"未提交的更改"下列出一堆文件.每个文件显示删除和添加的相同行数,此计数等于文件中行的总数.这会以某种方式暗示我们正在遇到某种线路结束问题.

但是,存储库.gitattribute包含

# Set default behaviour, in case users don't have core.autocrlf set.
* text=auto
Run Code Online (Sandbox Code Playgroud)

根据GitHub文章处理行结尾应该明确地core.autocrlf为存储库确定.但也~/.gitconfig包含autocrlf = true.

如果尝试将修改后的文件"恢复"回到先前的提交,则无效.相同的文件仍被视为未提交.

已将存储库克隆到多个位置,并确保没有文件位于同一路径中,以确保SourceTree或git不记得旧文件.

该存储库与Windows,Linux和OSX盒子协作.此问题仅出现在OSX中.

SourceTree/repository/git设置中可能还有什么问题?


更新#1,20.2013年4月

由于还有一些问题,这里有部分输出git config --list.

来自SourceTree控制台(OSX)

core.excludesfile=/Users/User/.gitignore_global
core.autocrlf=input
difftool.sourcetree.cmd=opendiff "$LOCAL" "$REMOTE"
difftool.sourcetree.path=
mergetool.sourcetree.cmd=/Applications/SourceTree.app/Contents/Resources/opendiff-w.sh "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$MERGED"
mergetool.sourcetree.trustexitcode=true
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.autocrlf=true
Run Code Online (Sandbox Code Playgroud)

以下是Windows端的相应输出:

core.symlinks=false
core.autocrlf=false
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=/bin/curl-ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
http.proxy=
core.autocrlf=true
core.repositoryformatversion=0
core.filemode=false …
Run Code Online (Sandbox Code Playgroud)

git end-of-line atlassian-sourcetree

40
推荐指数
2
解决办法
4万
查看次数