- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在 ClearCase 中,如果在两个不同版本的目录中发现两个文件具有相同的名称,并且如果元素 OID 不同但名称相同,则会发生邪恶孪生。
在 GIT 中,SHA1 id 始终是唯一的,同名文件始终具有不同的 SHA1 id。
我们没有 Evil twins 的概念,但可能有 2 个或更多开发人员有机会在同一目录中创建具有相同文件名的不同内容的文件。在 merge 期间,当两个文件完全不同时,开发人员有可能单独保留他的更改而留下其他更改,从而导致代码丢失。
任何人都可以让我知道 GIT 中是否会出现类似于 ClearCase 的问题,或者因为每个 SHA1 id 都是唯一的,所以 GIT 中不会有任何 Evil twin 问题。
最佳答案
Git 在整个树的级别进行跟踪,而不是单个文件和目录,因此它没有像 OID 这样的概念。
当 merge 包含对文件的不兼容更改的历史记录时(例如,两者都添加了具有不同内容的新文件),Git 将产生 merge 冲突并停止让用户解决冲突或中止 merge 。
当然,Git 不能强制执行 merge 的用户做正确的事情,但完全忽略冲突的一方或许更难。在 Git 中,冲突将出现在文件本身,而不是保存文件的目录中。换句话说,冲突将是关于文件的内容而不是哪个 OID 应该链接到目录中。当然,根据使用的工具,用户可能仍然只是按“在所有冲突中站在我这边”,但 Git 不会在意(虽然懒惰的老板和同事可能会很在意!)。
关于git - GIT 有邪恶的孪生问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2910044/
对于线程和计时器之类的东西,我无法忍受拖放控件。这些控件只是感觉与它们存在的实际本质相去甚远。拖放一个线程?我希望拖拽者在他们这样做之前了解幕后发生的事情。 这些抽象是否离金属太远了?他们是在帮助还是
有些人似乎认为 C 的 strcpy() 函数不好或邪恶。虽然我承认通常最好使用 strncpy() 来避免缓冲区溢出,但以下(strdup() 函数的实现对于那些不幸的人来说拥有它)安全地使用 st
我一直在用 matrix = *((fxMatrix*)&d3dMatrix); 好久不见。它工作正常,直到我的屏幕变黑并在我的办公 table 上收到一桶挫败感。 fxMatrix 包含 4 个 f
这是我应该问的问题,而不是这个: Emacs evil: space as a prefix key in motion state 我想定义一堆用于移动、移动、打开和关闭窗口和缓冲区的命令,这些命令
作为 Vim 用户,我在将近二十年后尝试 Emacs+Evil。我正在将我的大部分 Vim 配置移至 Evil,但我遇到很多问题的一件事是像我在 Vim 中使用的那样设置搜索和突出显示。我想要得到的是
很难说出这里问的是什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或言辞激烈,无法以目前的形式合理回答。如需帮助澄清此问题以便可以重新打开,visit the help center . 9年前关闭
我是一名优秀的程序员,十分优秀!