使用bash在Windows XP计算机上运行git.我从SVN导出了我的项目,然后克隆了一个裸存储库.
然后我将导出粘贴到裸存储库目录中,并执行了:
git add -A
Run Code Online (Sandbox Code Playgroud)
然后我得到一条消息列表:
LF将由CRLF取代
这种转变的后果是什么?这是Visual Studio中的.NET解决方案.
我在我的本地计算机上做了一些更新,将它们推送到远程存储库,现在我正在尝试将更改提取到服务器并获取消息;
错误:合并将覆盖对以下文件的本地更改:
的wp-content/W3TC-配置/ master.php
请在合并之前提交更改或存储更改.
所以我跑了,
git checkout -- wp-content/w3tc-config/master.php
Run Code Online (Sandbox Code Playgroud)
并再次尝试,我收到相同的消息.我假设w3tc在服务器上的配置文件中改变了一些东西.我不关心本地副本或远程副本是否在服务器上(我认为远程副本是最好的),我只是希望能够合并其余的更改(插件更新).
有任何想法吗?
我尝试使用CRLF结束行提交文件,但失败了.
我花了整整一天的时间在我的Windows计算机上尝试不同的策略,几乎被迫停止尝试使用Git而是尝试使用Mercurial.
每个答案只能分享一个最佳实践.
我被git用Windows/Linux行结束问题所困扰.看来,通过GitHub,MSysGit和其他来源,最好的解决方案是让你的本地存储库设置为使用linux风格的行结尾,但设置core.autocrlf为true.不幸的是,我没有及早做到这一点,所以现在每次我进行更改时,行结尾都会被剔除.
我以为我在这里找到了答案,但我无法让它为我工作.我的Linux命令行知识充其量是有限的,所以我甚至不确定"xargs fromdos"行在他的脚本中做了什么.我不断收到关于没有这样的文件或目录的消息,当我设法将它指向现有目录时,它告诉我我没有权限.
我在Windows上通过Mac OS X终端尝试使用MSysGit.
我从其他人那里收到了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) 我正在使用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状态
忽略行结束差异?
背景资料:
我随机使用Windows和Linux来处理项目.该项目在Dropbox中.
我发现了很多关于如何使git diff忽略行结尾.因为我使用meld git diff打开每个文件的meld.并且meld说"相同的文件".
那么我该如何避免这种情况呢.Git应该只为已更改的文件打开meld.如果只有文件结尾不同,git status不应该将文件报告为已更改.
编辑:原因:
这是因为Windows上的此设置
core.autocrlf是的
所以我在Linux上检查了工作副本,并在Windows上设置了core.autocrlf false.
知道如何使git status忽略不同的新行仍然是一件好事.
在尝试为开发人员标准化平台时,我的一个需求是提交,.git/config以便每个人都有相同的CRLF配置,而不会忘记手动设置它.
我该如何设置?
我对所有这些消极情绪感到担忧autocrlf.如果不起作用,为什么不删除此功能?要么这个功能的制作者被误解,要么他们用它做了一个失败的实验,它应该被删除,以阻止更多的人浪费他们的时间(阅读模糊的手册页,提问,回答这些问题的人等).
我是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仓库只是克隆使用本地箱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 ×10
newline ×3
eol ×2
line-endings ×2
msysgit ×2
end-of-line ×1
linux ×1
status ×1
windows ×1