Git不允许我切换分支

时间:2015-05-15 08:49:10

标签: git

$ git branch 的稳定 发展

我有属性文件,其中包含数据库连接的密码,现在我必须更改属性文件(比如xyz.properties)以获取密码。这样我就可以在本地服务器上使用了。 并将此文件路径添加到.gitignore和 $ git update-index --assume-unchanged xyz.properties

$ git status 在分支稳定 您的分支机构与“origin / stable”保持同步。 无需提交,工作目录清理

现在我想改变......分支到开发 $ git checkout development

错误:checkout会覆盖对以下文件的本地更改:     的.gitignore     X / Y / Z / xyz.properties

请在更改分支之前提交更改或存储更改。 中止

立即  我想将分支更改为开发并创建分支并对其进行处理。

那么我怎样才能完成这项任务......请帮助我。 在此先感谢

修改 当我试着 $ git stash 没有保存的本地更改

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

3 个答案:

答案 0 :(得分:2)

这是一个常见问题,即错误:

function placeImages(imageList) {
    var parentDiv = $("#div");
    var parentDivWidth = parentDiv.width(); //Say this is 200.
    var imgPosVal = parentDivWidth/imageList.length; //66.6
    for(var i=0; i<imageList.length; i++) {
        var imgObj = $("<img src=\""+imageList[i]+"\" >");
        parentDiv.append(imgObj);
        imgObj.css({"position":"absolute", "left": (imgPosVal*i) + "px"});
    }
}

简而言之,我可以建议删除文件(rm),然后执行结帐。否则你也可以添加并存储它们。 强制结帐如:

error: Your local changes to the following files would be overwritten by checkout

可能是另一种选择。

我不确定,但您是否已经看过这个问题:how to make Git ignore .idea files created by Rubymine? 看起来AdamNYC也有同样的问题。

答案 1 :(得分:1)

确保存储它并切换另一个分支

git stash
git checkout development

现在你可以在分支机构开发工作了

当您结帐时,您需要恢复工作场所并删除存储

git checkout last_branch
git stash pop

注意:您可以通过

查看您的藏匿状态
git stash list

如果没有返回任何内容。你的工作场所很干净。现在你可以在last_branch工作了。

答案 2 :(得分:0)

所以问题是根据您的环境需要修改xyz.properties文件,因此如果您尝试将其放入.gitignore文件中,它将无法工作,因为xyz.properties是跟踪文件并与repository.so同步现在有两件事可以做。

1&GT;取消跟踪xyz.properties文件并将它们放入.gitignore,但它不会与存储库同步,并且您无法共享基本属性文件,这对于使用相同项目并需要存储库和属性文件的其他程序员是有益的。

2 - ;在repo中创建一个xyz.properties.example,它将由repo共享和同步,并且对于使用同一项目的每个人都可以使用。    现在将xyz.propertes放入.gitignore,正在使用的将创建本地文件并从xyz.properties.example复制内容,显然该文件将保持未跟踪并被忽略。

因此,你可以实现你的任务......更好的方法。