很抱歉,如果这个问题无知,我刚刚开始使用Git。昨天我创建了一个带有主分支的本地存储库,然后创建了一个名为' firstbranch'的新分支。我会做一些练习工作的第一个分支'然后添加/提交更改,然后将其合并到主分支中。这是什么想法。 然而,今天我选择离开的地方,但是现在,我正在改变第一个分支'它没有合并甚至提交,它正在进行更改。有什么我做错了,或者这应该发生?我显然希望对这些修改进行修改,以便第一次分支'如果我决定废弃工作,则不更新主人。
答案 0 :(得分:1)
在git中有三种不同类型的存储:工作树,索引和数据库。了解这些如何相互作用非常重要。
通常,工作树是您直接与文件交互的地方(即您可以在文件资源管理器或IDE中看到它们;您可以在文本编辑器中处理它们)。在工作树的顶部,通常是.git/
目录,其中包含索引和数据库(以及其他内容)。索引是进行更改的位置(git add
)。数据库包含您的项目历史记录(它提交和引用的位置)。
特别是,分支(它们是一种ref)存在于数据库中而不存在于其他地方。 (索引和工作树可以"签出到分支机构",但这更像是工作树的状态,而不是与分支本身有关的任何东西。)
我认为您必须遵守的是您进行了一些更改,然后(不提交它们)检查了不同的分支,并且更改仍然存在。这是因为它们在工作树上。他们还不属于任何分支机构。通常,检出分支可能需要git将更改应用于工作树,如果这些更改会影响具有本地更改的文件,则结账将被拒绝;但如果允许结账,则会带来工作树更改。这是为了您的方便,虽然它可能会令人困惑。
如果您想让您当地的工作正在进行中,那么#34;所以你可以查看另一个分支完全,因为它在数据库中,你可以
(1)使用git stash
将本地更改放入临时提交中,以后可以从中检索它们(使用git stash pop
)或
(2)使用git worktree
检查另一个分支到单独的文件系统路径
您还可以使用git show
和git diff
的各种选项来检查给定分支的头部提交(以及其他内容)。我建议查看这些命令的git文档。