当我在rails中开发应用程序时,我第一次尝试使用git(在git上进行在线课程之后)。我检查了一个分支来处理一个功能,但是当事情开始出错时我想通过在检查该分支之前查看应用程序来重新思考,但是,我还没准备好放弃那个分支。因此,我检查了主分支。但是,当我在master分支上运行应用程序时,我在功能分支中所做的一切仍然存在。我第一次尝试它时,我没有添加或提交功能分支中的任何文件。然后当我看到master上的更改时,我回到功能分支并执行'git add'。希望在切换回master之前将它们保留在功能分支中。结果相同。当我在master分支上时,我在功能分支中添加的损坏代码正在应用程序中运行。当我在master分支上执行git状态时,它会列出所有Changes to be committed:
,如果我在功能分支上执行git状态,则会显示相同的内容。
我对git的理解(可能是有缺陷的)是如果我在没有合并我在分支上开发的代码的情况下检查了master,那么分支上的代码就不会在master上运行。你能告诉我我做错了什么吗?
答案 0 :(得分:2)
在切换到master之前,您需要实际提交对分支的更改以“将它们保留在那里”。
未提交的更改将跟随您从分支到分支(尽管如果它们与分支上的更改冲突,您将收到错误)
旁注:如果您还没准备好将代码提交到分支机构,但是想要保留它,则可以运行git stash
,这会将所有未提交的更改推送到堆栈。然后,您可以说git stash pop
让他们回来。但是要注意,你的藏匿栈也跟着你,所以不要弹到错误的分支上。