【问题标题】:Git new file appears in all branchesGit新文件出现在所有分支中
【发布时间】:2012-09-09 18:20:07
【问题描述】:

我认为在一个分支上创建的文件在我合并或变基分支之前不会出现在任何其他分支中?

示例:

我有两个分支:

  1. 主人
  2. new_contact_page

我检查了 new_contact_page 分支。

$ git checkout new_contact_page

然后我创建一个新文件。

$ vi contact_page.html

不执行任何 Git 命令,我切换回我的 Master 分支。

$ git checkout master

然后我看到这个contact_page.html文件也在我的Master分支中。

$ ls   (contact_page.html shows up in the list!)

文件不应该只存在于 new_contact_page 分支中吗?

【问题讨论】:

    标签: git merge branch commit rebase


    【解决方案1】:

    Git 永远不会触及任何实际上不在您的存储库中的文件。 (未跟踪的文件)

    您需要先git addgit commit 文件(进入一个分支)。

    【讨论】:

    • 那么如果我git addgit commit new_contact_page 中的文件不会存在于 master 分支中,对吗?
    • 啊,答案是肯定的。这让很多事情变得更有意义。谢谢 Slaks
    • @DonnyP:更准确地说,在你这样做之前,它不会存在于 any 分支中——它只是本地文件系统上的残留物。
    【解决方案2】:

    这对understand the index (or staging area)很重要。
    只要您不暂存(git add)文件,它们就会保持“未跟踪”(或“私有”),并且不会被“git checkout”修改。

    这与“未暂存”不同,后者引用了跟踪文件(以前在本地 Git 存储库中提交),但本地修改尚未添加到索引中。

    您可以在“You could have invented git (and maybe you already have!)”中阅读更多内容

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-26
      • 2019-06-17
      • 2022-01-09
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多