相关疑难解决方法(0)

如何强制"git pull"覆盖本地文件?

如何强制覆盖本地文件git pull

方案如下:

  • 团队成员正在修改我们正在处理的网站的模板
  • 他们正在向images目录添加一些图像(但忘记在源代码管理下添加它们)
  • 他们稍后通过邮件发送图像给我
  • 我在源控件下添加图像并将其与其他更改一起推送到GitHub
  • 他们无法从GitHub中提取更新,因为Git不想覆盖他们的文件.

这是我得到的错误:

错误:未经跟踪的工作树文件'public/images/icon.gif'将被合并覆盖

如何强制Git覆盖它们?这个人是设计师 - 通常我会手动解决所有冲突,因此服务器具有他们只需要在他们的计算机上更新的最新版本.

git version-control overwrite git-pull git-fetch

6654
推荐指数
46
解决办法
427万
查看次数

git checkout感到困惑

我是git的新手,并试图围绕分支的工作方式.根据文档git checkout

更新工作树中的文件以匹配索引或指定树中的版本.如果>没有给出路径,git checkout也会更新HEAD以将指定的分支设置为>当前分支.

所以据我所知,我工作的目录中的文件(我执行git init的文件)应该根据我所在的分支进行更改.我很困惑,因为当我在分支之间切换时不会发生这种情况.在切换分支之前我正在编辑的编辑存在于我切换到的分支中.我做错了什么或git checkout不能这样工作,我只是误解了文档?

git

4
推荐指数
2
解决办法
2699
查看次数

在git中切换分支 - 我什么时候会得到"你有本地更改不能切换分支."?

可能重复:
git:切换分支并忽略任何更改而不提交.
Git分支表现得很奇怪

我知道一般的建议是在git中切换分支之前要有一个干净的状态.(藏匿或公园承诺).我想知道我何时会得到"你有本地更改无法切换分支",我无法遵循逻辑:

我有一个repo,文件名为version.txt,包含文本"1":

git checkout -b new

echo 2 >> version.txt(工作目录不脏,修改文件)

git checkout master(这是怎么回事?我没有阶段\提交我对新的更改)

如果我删除新分支中的文件内容,或者首先暂存文件,也会发生同样的情况.

有人可以帮我理解我什么时候会得到"你有本地更改不能切换分支".?

谢谢,冉

git branch git-checkout git-branch

2
推荐指数
1
解决办法
1万
查看次数

由于本地更改,git checkout 失败,但之后 stash 应用干净

我经常尝试签出一个新的远程分支(以从中创建一个本地分支,但这可能与我的问题无关)并且 git 失败并出现以下错误

错误:您对以下文件的本地更改将被检出覆盖:
请在切换分支之前提交您的更改或隐藏它们。

现在,当我看到这一点时,人们可能会天真地期望如果一个人隐藏更改,签出新分支,然后应用隐藏的更改,那么就会发生冲突,但几乎从来没有这种情况。发生的情况是,隐藏的更改应用得很干净,而且我在检出新分支之前不会丢失任何东西。为什么 git 会给出这个看似误导性的错误?如果我可以在结账之前将其藏起来并在最后干净地应用藏匿处,为什么不在git checkout引擎盖下这样做呢?

编辑:
为了更清楚,我不是在问为什么结帐失败,或者为什么有时使用脏工作区的结帐会成功,我理解这一切。我的问题是,在这种情况下,有一个 100% 无数据丢失的行动方案(或者是否存在一些我看不到数据可能丢失的极端情况??)那么为什么 git 不这样做?

如果我对 git 的新手说文件foo第 100 行上的一个 modif会与文件foo第 2 行上的另一个 modif 冲突,那么对他们来说,接受它是事实,而不是抱怨,并且很容易解决冲突。但是因为 git 是一个不错的工具,所以它做的很聪明,甚至不会用它可以解决的非问题来打扰您,而没有任何损坏的风险。为什么在这种情况下与git checkout?

git git-stash git-checkout

2
推荐指数
1
解决办法
1217
查看次数

撤消 Git 中的本地更改

我的情况:我克隆了一个存储库(内核的源文件)。然后检查一个分支,并构建内核。二进制文件已存储在工作树的子目录中。现在,我想放弃所有本地更改,包括构建的二进制文件,并恢复到克隆存储库的不同分支。

特别是,我认为这个答案很有用。在我看来,最好的方法是

git checkout -f <desired branch of the original cloned repository>
Run Code Online (Sandbox Code Playgroud)

如果我理解正确,这应该强制结帐,丢弃本地更改(如果我错了,请纠正我)。Git 已成功签出,但我仍然在工作树的同一子文件夹中找到之前构建的二进制文件。

git

2
推荐指数
2
解决办法
1万
查看次数

当"git status"显示所有分支上的跟踪文件更改时,"git checkout -f"有什么用?

我有一个跟踪文件(一个旧版本的文件),我在master分支上修改.master分支上的staus将此文件显示为已修改,但主题分支上的状态也将此文件显示为已修改.

之前出现了错误"错误:您对"X"进行了本地更改;当我结帐到其他分支而没有进行存储或在git-checkout中不使用"-f"时,无法切换分支.

我已经检查了"stackoverflow.com/questions/1304626/git-switch-branch-and-ignore-any-changes-without-committing",但该错误没有发生,即使我有本地更改也可以结帐.

是否有任何类型的配置导致这种混乱?

git git-checkout git-status git-branch

1
推荐指数
1
解决办法
579
查看次数