用master分支中的文件覆盖本地文件

时间:2019-02-28 00:05:00

标签: git github fetch branch

我启动了一个项目,并将其推送到github仓库中。接下来,我想添加另一个功能,并创建了一个新分支(feature_branch)。我开始添加一些代码,但是遇到很多问题之后,我现在想用master分支中的代码覆盖本地文件。

我尝试过:

git checkout master(返回master分支)

git fetch --all希望这会覆盖所有内容(我在https://www.freecodecamp.org/forum/t/override-local-files-with-git-pull/13216上找到了此内容)

在这一点上,我得到了错误

fatal: 'feature_branch' does not appear to be a git repository

git branch -a向我显示以下内容:

*master
remotes/origin/feature_branch
remotes/origin/master

我现在有点困惑。抱歉,我是git的新手,到目前为止,我只真正习惯于提交“完成的”项目,或者在添加新内容之后,我从未真正尝试过使用旧版本。 任何帮助将不胜感激! :)

3 个答案:

答案 0 :(得分:0)

您的分支为什么走了?

要么您以某种方式删除了功能分支,要么您可能没有注意到分支创建由于某种原因而失败*,但是无论如何,由于您的代码仍具有最新修改并且唯一的本地分支是master,因此它看来您最近的工作是在您不知道的大师上完成的。

*现在thanks to torek,我们知道发生了什么,但解决方案保持不变

如何解决?

我会说只是去git stash

如果这样做,尚未提交的所有内容将被放入临时提交的特殊分支stash中,准备用git stash applygit stash pop弹出(或从不调用)同样,就好像您想要在这里一样。)

git reset --hard相比,它的优势在于,您可能想要在几天(或几周?)内记住失败分支中的情况,以及您尝试过的事情,如果这样的话,将这些内容保存在某处将是非常宝贵的。

答案 1 :(得分:0)

命令:

git fetch --all

表示从所有远程操作 获取,而不是“获取所有分支”。提取已获取所有分支,但仅从一个远程获取(除非另有说明)。

您看到的错误消息表示您的远程是伪造的。您有一个名为feature_branch的遥控器,以及一个通常的名为origin的遥控器。 fetch --all尝试从可能成功的origin以及从名为feature_branch的远程服务器获取数据。附加到名为feature_branch的远程服务器的URL可能是错误的,并且提取失败,并且您看到的错误。

请注意,遥控器只是一个短字符串(您可以选择),它存储URL,并提供远程跟踪名称的前半部分。因此,短字符串origin存储了另一个Git的URL,并且还提供了origin/的{​​{1}}部分,依此类推。您可以使用origin/mastergit remote add随意创建和删除遥控器。您可以使用git remote remove重命名现有的遥控器。

清理伪造的遥控器,然后继续进行摆弄树枝的正常过程。

答案 2 :(得分:0)

如果您不希望使用旧分支,请使用git branch -D branchName删除该分支。

然后,结帐至主git checkout master

然后从主服务器git pull origin master获取最新信息。

然后再次创建分支git checkout -b branchName

这样,您将在新分支中拥有主分支数据,

希望对您有帮助!