在Mac上的git看到我尚未修改的文件,它们也已显示

时间:2019-01-10 18:40:37

标签: windows git macos

我在Mac上看到带有git的奇怪行为。我没有在Windows上看到这种情况。在Mac上使用git v 2.19.1,在Windows上使用2.18.0.windows.1。

我在跨平台团队中工作,所以我们有些人使用Windows,其他人使用Mac。我都用。

这是我看到的情况:

我在我的功能分支上工作了几天,并希望确保使用最新的远程更新来更新我的分支,因此我始终使用最新版本的远程。因此,我每天都会做以下事情,以减少冲突的机会并保持最新版本:

  git checkout开发
git获取来源
git merge起源/开发
git checkout我的功能
git merge开发
 

完成后,我将更改应用于我的功能分支,但我注意到git在Mac上的行为非常奇怪。这是发生了什么:

  • 我添加了一些更改

  • 我还没有上演任何事情,因此没有发布 git add

  • 我执行 git status ,即使我既未修改也未暂存文件,我看到很多文件好像它们已被我修改并暂存。

例如,git status现在将我的.gitignore文件显示为:

  me $ git状态
在分支我的功能
您的分支是最新的“来源/我的功能”。

所做更改:
  新文件:.gitignore
 

在Windows上不会发生这种情况,并且由于我没有修改此文件,因此它根本不会显示为 git status 。我修改过的文件显示了需要添加的内容,这是它的行为方式。

为什么在Mac上,git会以某种方式修改和上载我从未触摸过的文件?

1 个答案:

答案 0 :(得分:2)

在混合开发环境中(例如我也在其中工作),当“行尾”不匹配时,我会看到此行为。解决此问题的最佳方法是更新您的.gitconfig文件。

我鼓励工作团队中的每个人都将以下内容添加到他们的.gitconfig文件中。您可以像每个.gitconfig一样向每个仓库添加一个.gitignore,和/或每个开发人员都可以在其git全局配置文件中对其进行设置。

[text]
   eof=lf

有不同的选择,但是关键是整个团队在提交和拉动时使用相同的行结尾。

根据下面的请求,这是我的gitconfig。

[User]
    name = Ben Horgen
    email = xxx@xxxxxxxx.com
[text]
    eof=lf
[core]
    autocrlf = input    
[pull]
    rebase = true
[push]
    default = simple