gpt4 book ai didi

git - 在不更改工作副本的情况下创建 git 分支

转载 作者:行者123 更新时间:2023-12-03 14:34:19 25 4
gpt4 key购买 nike

我刚刚创建了一个新的存储库并添加了一个远程:

git init
git remote add foo something

现在我希望 git 出现在 foo/master 的最新提交中.通常,那只会是:
git checkout master

Git 足够聪明,可以使用 foo/master这些日子。

挑战在于我的工作副本中已经有文件,我不想更改它们。我要 git diff向我展示更改,我想提交本地状态并将其推送到 foo。

背景:本地状态是一个即将被推送到 Github Pages 的生成网站。

最佳答案

如果您刚刚完成 git init在一个新的存储库中(而不是重新 init -ing 一个现有的存储库),并且还没有运行 git commit ,您当前位于未出生的分支上(通常是 master -as-unborn-branch)。这意味着 HEAD包含名称 master ,而分支名为 master实际上并不存在。

如果您还没有运行任何 git add命令,您的索引当前为空。

您希望拥有的状态是名称 master指向与 foo/master 相同的提交,而不改变工作树的内容。但首先你需要从远程 foo 获取所有提交:

$ git fetch foo

现在您可以创建分支本身:
$ git branch master foo/master

因为您已经在 master ——它只是“未出生”——你现在还在 mastermaster指向与 foo/master 相同的提交.

你的索引还是空的,所以 git status将显示您已删除 HEAD 中的每个文件提交,工作树中的每个文件都作为未跟踪文件。如果您想从当前提交填充索引,您现在可以执行以下操作:
$ git read-tree HEAD

然后 git reset各种文件来恢复它们。如果没有——如果你只想使用工作树——你可以简单地 git add . (尽管您可能想先设置一个 .gitignore)。

关于git - 在不更改工作副本的情况下创建 git 分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41596550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com