我创建了一个文件夹,其中包含本地工作 git 结构中的文件。我使用 git checkout -b 创建了一个新分支并使用了 git add 。和 git commit -m "..." 将这些文件添加到我的本地分支。但是,当我执行 git checkout master 时,我创建并提交的文件夹仍然存在。为什么?我认为 git commit 会将文件夹及其内容放入我的本地分支,当我签出 master 时将其切换出来。
如果您将以前未跟踪的文件添加到新分支,然后签出当前不跟踪这些文件的另一个分支,则不会将它们从您的工作副本中删除。
这是一个示例 - 假设我当前位于一个名为的干净分支上old_branch
,然后我签出一个名为new_branch
:
git checkout -b new_branch
然后,我创建一个名为的新文件test.txt
在此分支中并将其添加到存储库中:
touch test.txt # creates a new file named test.txt
git add test.txt
git commit -m "Added test.txt"
The test.txt
文件当前由new_branch
分支。但是,当我将分支切换回old_branch
:
git checkout old_branch
Since test.txt
未被跟踪old_branch
,它将其保留在工作目录中并且不会覆盖它。这是预期的行为。如果你这样做git status
此时,您会注意到test.txt
文件当前未跟踪。
为了完整起见,如果您需要清除工作副本中所有未跟踪的文件,您可以首先执行以下操作:
git clean -n
这将列出所有将被删除的未跟踪文件。如果您对列表感到满意,您可以使用以下方法删除这些文件:
git clean -f -d
这是一个破坏性的命令,特别是因为它删除了当前分支未跟踪的文件。 (但它不会从跟踪这些文件的分支中删除它们。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)