Git不允许我切换分支。

4

$git branch stable development

我有一个属性文件,其中包含数据库连接的密码,现在我不得不更改该属性文件(比如说xyz.properties)的密码,这样我就可以在本地服务器上使用它。 并将此文件路径添加到.gitignore中,并运行以下命令: $git update-index --assume-unchanged xyz.properties

$git status 分支稳定 您的分支是'origin/stable'与最新的commit同步。 没有要提交的内容,工作目录干净

现在我想把...分支改为开发分支 $git checkout development

错误:检出时会覆盖以下文件的本地更改: .gitignore x/y/z/xyz.properties

请在切换分支之前提交您的更改或将它们存储起来。 中止

现在 我想将分支更改为开发分支并在其上工作。

那么我该如何完成这个任务呢?请帮帮我。 先感谢您。

编辑 当我尝试运行 $git stash 没有要保存的本地更改

注意:我需要从每个分支使用本地服务器,这需要修改我的xyz.properties文件,因为我的本地数据库与存储库的密码不同。

2个回答

1
因此,问题在于根据您的环境需要修改xyz.properties文件,如果您尝试将其放入.gitignore文件中,它将无效,因为xyz.properties是跟踪文件并与存储库同步。现在有两件事情可以做。
1> 取消跟踪xyz.properties文件并将其放入.gitignore,但它不会与存储库同步,您也无法共享基本属性文件,这对其他使用相同项目并需要存储库和属性文件的程序员非常有益。
2> 在repo中创建一个xyz.properties.example,它将由repo共享和同步,并可供使用相同项目的所有人使用。现在将xyz.propertes放入.gitignore,谁使用都将创建本地文件并从xyz.properties.example复制内容,显然该文件将保持未跟踪和忽略。
因此,您可以更好地完成任务。

1

确保将其储存并切换到另一个分支

git stash
git checkout development

现在你可以在分支开发中工作。当你退回时,需要恢复你的工作区并删除存储。
git checkout last_branch
git stash pop

注意:您可以通过查看您的存储状态来进行检查。
git stash list

如果没有返回任何东西,则表示您的工作区很干净。现在,您可以在 last_branch 上工作了。

2
当我执行 $git stash 命令时,它会显示:没有本地更改需要保存。 - Atiq
如果没有本地更改需要保存,只需执行 git checkout development 即可。如果不确定,可以执行 git status 来查看您的工作区当前状态。 - steven
1
我找到了问题所在,是由于属性文件被跟踪了,因此有两种方法,要么取消跟踪这些文件,但这种策略并不好。我会回答正确的策略...谢谢你的帮助。 - Atiq

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接