微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将本地文件夹复制到 git 分支是否会将文件夹复制到所有分支?

如何解决将本地文件夹复制到 git 分支是否会将文件夹复制到所有分支?

我的计算机上有一个本地文件夹“local_d”

我有一个带有 2 个分支“master”、“hipster”的仓库

我用脚本对“local_d”做了一些操作,想把这个“local_d”复制到“hipster”分支

我目前在 (*hipster) 分支中处于活动状态,但在 git 存储库之外(例如主文件夹)

当我这样做时:

cp -r ~/local_d ~/git/repo

“local_d”同时存在于“master”和“hipster”分支???

非常感谢您对此的任何帮助。

解决方法

“local_d”同时存在于“master”和“hipster”分支???

没有。它不在任何分支中。它根本不在存储库中。

“但我能看到它,它就在这里”,我听到你说。是的。事情是“就在这里”不在存储库中您可以查看和使用的文件不在 Git 中。

这可能是您在开始使用 Git 之前应该知道的第一件事。 Git 不存储文件: Git 存储提交。提交然后包含文件,但不是普通的、日常的格式。存储在 Git 提交中的文件是一种特殊的、只读的、仅限 Git 的、压缩的和去重的形式,除了 Git 之外什么都不能读取,而且什么——甚至 Git 本身都不能覆盖它们。这使得它们对于完成工作毫无用处。 (这种不能直接使用版本控制文件的事情,在很多版本控制系统中都是如此:Git 在这里并不是特别特别。)

这对您来说意味着,为了使用某些 Git 提交中的文件,您首先需要 Git copy 这些文件,将它们从提交中提取出来,从它们的内部 Git-only 中更改它们格式为您可以查看和使用的文件。这些对完成工作很有用的普通日常文件不是提交中的文件。它们只是普通的日常文件。

提交的 文件安全地隐藏在提交中。 Git 处理提交。 Git 还可以进行提交,为此,您需要让 Git 复制您所做的任何更新。要将这些更新导入 Git,您必须对这些文件使用 git add1

这个对你来说意味着,无论你对工作区中复制的有用文件做什么,都不是在Git中.将一堆文件复制到您的工作树中是可以的,但是除了您的 工作树之外,它不会将它们放入任何其他东西中。 Git 不会将它们保存在任何地方,但也不会删除它们。它们是你的,而不是 Git 的。 Git 只是把它们留在那里。

当您运行 git checkout(或在 Git 2.23 及更高版本中,{{ 1}})。当您选择一些 other 提交到 git switch 时,Git 会将 那些 文件从您的工作区移出,并将这些文件从other 提交。不过,只要所有 git checkout 文件都没有要么提交,它们就会一直坐在那里。

一旦你使用 local_d/* 告诉 Git:这些文件应该进入我的下一次提交——这会将它们复制到我喜欢称为你的下一个提议的内容中commit; 请注意,您实际上还没有进行这个提交——现在 Git 知道这些文件并将开始处理它们。但在那之前,Git 只是假设您制作了这些额外的东西,并希望在 Git 围绕它工作时将其保留在那里。


1虽然有一些捷径,但我认为先学习它们不是一个好主意,出于多种原因,我不会在这里讨论。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。