1

当我在 Rails 中开发应用程序时,我第一次尝试使用 git(在参加了关于 git 的在线课程之后)。我检查了一个分支来开发一个功能,但是当事情开始出错时,我想在检查那个分支之前通过查看应用程序来重新考虑事情,但是,我还没有准备好放弃那个分支。因此,我检查了主分支。但是,当我在主分支上运行应用程序时,我在功能分支中所做的一切仍然存在。第一次尝试时,我没有从功能分支添加或提交任何文件。然后,当我看到 master 上的更改时,我回到功能分支并执行了“git add”。希望在切换回master之前可以将它们保留在功能分支中。结果相同。当我在主分支上时,我在功能分支中添加的损坏代码正在应用程序中运行。当我在 master 分支上执行 git status 时,它列出了所有Changes to be committed:,这与我在功能分支上执行 git status 时所说的相同。

我对 git 的(也许是有缺陷的)理解是,如果我在没有合并我在分支上开发的代码的情况下签出 master,那么分支上的代码将不会在 master 上运行。你能告诉我我做错了什么吗?

4

1 回答 1

2

在切换到 master 之前,您需要实际提交对分支的更改以“将它们保留在那里”。

未提交的更改将跟随您从一个分支到另一个分支(尽管如果它们与分支上的更改冲突,您会收到错误消息)

旁注:如果您还没有准备好将代码提交到分支,但又想保留它,则可以运行git stash,这会将所有未提交的更改推送到堆栈中。然后,稍后,您可以说git stash pop让他们回来。但是请注意,您的存储堆栈也会跟随您,所以不要跳到错误的分支上。

于 2013-02-28T18:22:37.707 回答