- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我的本地存储库处于禁止我提交、存储、 checkout 到另一个分支甚至放弃更改的状态。所以我被困住了。
我将尽量描述我所记得的是什么步骤导致我遇到这种情况。
请坐。
不久前,在很远很远的另一台计算机上...... 另一个开发人员根据以下内容规范化了项目中的 crlf:https://help.github.com/articles/dealing-with-line-endings
同时(你知道,光速......)我在本地进行了一些更改,提交并 pull 。
当我 pull Git 时说:
error: Your local changes to the following files would be overwritten by merge:
wp-config.php
wp-config.php
之前使用 git update-index --assume-unchanged wp-config.php
从索引中删除因为它是一个适应每个本地环境的模板配置文件。
基础"template"可以改变。没什么好惊讶的。这是我的计划:
wp-config.php
stash
我自己的配置更改pull origin master
stash apply
我的配置回来第 3 步出错。git pull origin master
还是报上面的错误,好像stash是无效的。
git status
说wp-config.php
更改未提交提交。藏起来后,这让我有点吃惊。
因为我 stash 了我的更改,所以我运行了 git checkout -- wp-config.php
...但没有任何效果!文件仍未暂存提交。
由于我变得疯狂,我创建了一个新分支 my-config,添加并提交了 wp-config.php
进去,然后切换回master,删除wp-config.php
(使用 git rm
),并 merge origin/master... 成功!
现在 master 是最新的并且是干净的,我计划在没有 Git 帮助的情况下恢复我自己的配置(手动编辑文件)。
因为我想知道发生了什么,所以我切换到 my-config 分支,并在这里尝试了一个非常简单的操作:
git stash
git stash apply
你猜怎么着? stash apply
失败的说法:
error: Your local changes to the following files would be overwritten by merge:
wordpress/license.txt
wordpress/readme.html
...
(all the files that where modified by the crlf conversion)
现在我被困在我的分支上(并计划看到它,法语国家会理解;))因为:
git stash apply
, commit
和 checkout master
给出上面的错误git stash
生成 stash 条目但不更改未暂存状态git checkout -- <file>
既不删除未暂存状态我现在唯一能做的就是删除所有这些文件(使用操作系统 rm
)以便能够返回到 master 分支。
真实故事。
我很想了解在 master 分支上发生了什么,然后在 my-config 分支上发生了什么,以及是什么让我陷入这种情况(我怀疑在 crlf 转换文件上使用了 stash)。
重要提示:
git core.autocrlf
在input
.gitattributes
与“dealing-with-line-endings”一文中的相同当我做的时候stash
在 my-config 分支上它输出:
warning: CRLF will be replaced by LF in wordpress/license.txt.
The file will have its original line endings in your working directory.
... (one for each crlf converted file) ...
Saved working directory and index state WIP on my-config: dbf65ad my config -- should not be pushed
HEAD is now at dbf65ad my config -- should not be pushed
(dbf65ad
是我在 my-config 分支上所做的唯一提交)
最佳答案
经过一些研究,我猜想发生了以下情况。您的同事更改了导致第一次 pull 冲突的行尾。
这就是为什么你 stash 你的工作,取出东西(现在没有问题)并再次开始应用 stash 。
通过调用 git stash apply
git 启动一个 recursive merge在您 stash 的更改中。
错误消息只是告诉您遇到了 merge 冲突。根据开发商的stash-documentation这可以通过 git stash drop
解决解决冲突后:
"Applying the [stash] can fail with conflicts; in this case, it is not removed from the stash list. You need to resolve the conflicts by hand and call
git stash drop
manually afterwards."
结论:如果行尾的配置必须在现有项目中完成,最好的做法似乎是使用 .gitattributes
来完成。在您的项目文件夹中。由于它与您的 line-ending-change-commit 一起分发,因此它将避免将您当前的工作切换到新的规范化标准的麻烦。
根据 .gitattributes
的开发者文档您可以通过以下步骤更改所有文件(在事件分支中)的行尾:
$ echo "<<filepattern>> eol=lf" >>.gitattributes
$ rm .git/index # Remove the index to force Git to
$ git reset # re-scan the working directory
$ git status # Show files that will be normalized
$ git add -u
$ git add .gitattributes
$ git commit -m "Introduce end-of-line normalization"
替换<<filepattern>>
使用与您的源文件匹配的模式 - 在您的情况下 *.py
对于 python 文件(此 .gitignore
-description 中给出了一个很好的模式解释)。
如果要添加多个文件模式,您可以将多个行结束定义添加到 .gitattributes
.
Attention: Since the second step requires to delete the
.git/index
(which is branch-specific) this must be done in every single branch you'd like to keep.
如果你有很多分支要处理,你可以考虑写一个简短的脚本iterating through your git branches .
关于git - 在 crlf 规范化后使用 stash 卡住 repo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17123998/
我正在寻找一个库函数来规范化 Python 中的 URL,即删除路径中的“./”或“../”部分,或添加默认端口或转义特殊字符等。结果应该是指向同一网页的两个 URL 唯一的字符串。例如 http:/
我有 2 个版本的 XSD 文件,我想看看它们之间做了哪些更改。不幸的是,发布者选择完全重写 XSD,更改元素、属性、命名空间前缀等的顺序。是否有工具(命令行或 GUI)可以将它们转换为我可以使用的规
我一直在想,同时使用 normalize.css 和某种 CSS 重置会不会有什么大问题?我一直在四处挖掘,我遇到的所有文章都只是以非此即彼的方式谈论它们,而没有谈及将两者结合起来。 诚然,我在规范化
这对我来说是一个新话题,我已经阅读了几篇文章,但我仍然不清楚,甚至不确定以下问题是否与这篇文章的标题有关。 我的系统向用户发送数据。用户可以选择通过以下方式发送数据: XML 电子邮件 发布 根据用户
我正在从设计不佳的旧数据库升级到新数据库。在旧数据库中有带有字段 Id 和 Commodities 的 tableA。 Id 是主键,包含一个 int,Commodities 包含一个逗号分隔的列表。
假设我有包含此字符串的 Apache Solr 索引文档: Klüft skräms inför 我希望能够使用此关键字通过搜索找到它(注意“u”-“ü”): kluft 有没有办法做到这一点 ? 最
假设您正在处理常规的联系人数据库(您知道...姓名,电话号码,地址,电子邮件等...)。如果您在本地对此感到疑惑,那么一般来说这不是什么大问题,但是当我们查看国际场景时,它就是。 查看电话号码系统,您
尝试在不使用 python 中的任何包的情况下计算 L1 范数 假设我有向量:l = [2.34, 3.32, 6.32, 2.5, 3,3, 5.32] 我想找到这个向量的L1,没有任何包: 我已经
我们拥有 10 年的存档体育数据,分布在不同的数据库中。 尝试将所有数据合并到一个数据库中。由于我们将处理 10 倍的记录数量,因此我现在正在尝试重新设计架构以避免潜在的性能影响。 一项更改是将团队名
我正在使用以下设计为我的网站创建表格 设计1 设计2 由于并非所有注册用户都会尝试挑战,因此设计 1 适合。插入第三个表时,表 2 分数会相应更新。但是 user_id 字段变得多余。 设计 2 中为
我有一个带有字段 json 的表模板。由于 json 对于许多 template 来说可能是相同的 (1:n),我创建了另一个表 template_json 并添加了字段 template_json_
我有一个具有正交投影的 C++/OpenGl/Glut 应用程序。 窗口的宽度为 500 x 500 像素。目前,当鼠标点击发生时,该点将在 (0,0) 和 (500, 500) 之间。 我想获取该点
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
我的印象是 JavaScript 解释器假设它正在解释的源代码已经被规范化。什么,规范化到底是做什么的?它不能是文本编辑器,否则源的明文表示会改变。是否有一些执行规范化的“预处理器”? 最佳答案 EC
我被分配了一项任务,但我不确定如何完成它: 我必须构建一个支持多种设备的消息系统,并且它应该尽可能高效。用户最多可以有 10 台设备,当用户收到消息时,所有设备都需要接收消息。 我有两个想法: Tab
我正在尝试将规范化合并到我的数据库设计中,互联网上提供的一些解释让我有点困惑 - 我不确定我是否在朝着正确的方向前进? 到目前为止我有: 用户: id username password 用户配置文件
规范化数据时,是否可以接受在同一张表中重复使用外键? 例如一家 express 公司有一个订单表和一个客户表,订单表会记录从哪个客户那里取件(Customer_ID),并且还会有一列用于说明要交付给哪
用 Java 制作规范形式的 XML 文件的最简单方法是什么?你有一些完成的代码吗?我在网上找到了几个链接,比如 this , this , 和 this ,但我无法让它工作:/ 谢谢, 伊凡 编辑:
在 Python 中是否有标准方法来规范化 unicode 字符串,以便它只理解可用于表示它的最简单的 unicode 实体? 我的意思是,可以将 ['LATIN SMALL LETTER A', '
我知道这个问题已经讨论了很多——但实际上我还没有找到这个问题的最终答案。 我想从我的 VBA(Excel)脚本中的日期“删除”(或更确切地说是标准化)时间。例如。: 20.12.2017 15:16
我是一名优秀的程序员,十分优秀!