[英]git - Switching to a local develop, then back to feature branch resets the status of modified/added files
我在我的功能分支中添加了一些更改,使用 push -u git 命令暫存、提交並推送到原點。
第二天,我更新了我的本地開發和功能分支,以使用標准的 git fetch / git merge 程序從遠程獲取最新代碼。
在這一點上,我看到了一些有趣的事情:
我在我的功能分支上, git status
告訴我一切正常,這是正確的
我切換到開發分支, git status
顯示一切正常,這是正確的
我切換回我的功能分支, git status
報告了我之前已經推送到遠程一天的所有更改,如下所示:
我不明白為什么會發生這種情況,但不應該。
如果我發出git add .
, git 中沒有顯示任何消息,我只是回到終端命令。
如果我現在發出git status
,它現在顯示我的功能分支是最新的“沒有任何提交,工作樹是干凈的”。
在我的 Mac 上從功能來回切換到開發和開發到功能分支,一遍又一遍地重現相同的問題。 在我的 Windows 機器上這樣做根本不會重現這個問題。
所以,我的結論是我的 Mac 機器上的 git 環境有問題。
但是,我還嘗試在我的 Mac 上獲取我的項目的全新克隆(它現在包含我的功能分支,因為我使用 git push -u 命令推送了所有更改),然后嘗試在該克隆之間來回切換開發和我的功能分支,但問題沒有發生。 這讓事情變得更加撲朔迷離。
看起來我的 Mac 機器上的 git 沒有正確更新某些內容。 這可能是什么以及如何調查?
我們是在 Mac 和 Windows 上工作的跨平台團隊。 我的core.autocrlf
設置為在 Mac 上input
,在 Windows 上設置為true
。 我不知道core.autocrlf
其他團隊成員設置。
首先,確保git config core.autocrlf
始終設置為 false(在 Windows 或 Mac 上)。
您可能需要的任何 EOL 轉換都應該在.gitattributes
eol
屬性中完成。
然后在兩個平台上檢查您的 repo 中的git config -l
:內容過濾器驅動程序可能是提交時自動修改的示例,可能不會在其他平台上聲明。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.