1

正如你所理解的,我仍在学习 Git 以及分支是如何工作的。无论如何:

  1. 我在当地的一家master分公司工作。
  2. 我使用我的 IDE 创建并切换到一个新fcwdetection分支来添加一些代码,这意味着不是通过命令行。
  3. IDE 要求我将我创建的新文件(比如A.php)添加到存储库。我已经添加并修改了B.php(已经添加)。

结果master分支(我切换回它)现在A.php具有与分支B.php中相同的B.php编辑fcwdetection

这怎么可能?这是来自 IDE 的错误,还是我完全误解了分支的工作方式?

4

1 回答 1

1

您的工作流程似乎正确。看起来像 IDE 中的错误。如果您只想在fcwdetection分支中拥有修改后的文件,您应该在该分支中提交它们。在命令行中,您执行以下操作:

创建分支:

git checkout -b fcwdetection

编辑A.php并创建B.php 添加所有文件,包括新B.phpgit

git add -A .

将它们提交到fcwdetection

git commit -m 'Commit message'

此时,如果您重新签入,master您会看到文件的旧版本:

git checkout master

如果您不断看到 的修改版本A.php并且B.php您应该检查它们的状态,它们是否已经添加到index? 我这么说是git因为不要让你从一个分支切换到另一个修改过的未提交文件,在命令行中你会得到这个错误:

error: Your local changes to the following files would be overwritten by checkout:
[some files]
Please, commit your changes or stash them before you can switch branches.

Aborting
于 2013-04-05T16:03:17.610 回答