【问题标题】:Checking out from master and used -f with uncommitted changes从 master 签出并使用 -f 进行未提交的更改
【发布时间】:2021-12-27 04:31:33
【问题描述】:

我在一家公司工作,我们的网站上有一个每天更新的下载计数器,所以每次我从远程存储库中提取时,都会有需要提交的更改,但有人告诉我忽略这一点并且首席开发人员将在未来某个时候进入 .gitignore 文件夹(计数器是网站的新增功能)。

问题是这样的:

我去 master 分支结帐,它不会让我,因为我有未提交的更改;对我使用的 git 来说相当新:

git checkout content-fs-04112021 -f 

(我假设'-f'表示力)

现在当我再次签出主分支并使用时:

git status

它说我的分支与 origin/master 是最新的,并且没有任何要提交的东西。

我的目的不是提交任何东西,但我只想知道我修改后的文件发生了什么。

我是否在主分支上提交了更改?如果没有,为什么修改后的文件不显示?

【问题讨论】:

  • 您没有将更改提交给 master,您可能丢失了对这些文件的本地更改,因为-f 强制签出并替换这些文件的内容。将来首先使用git stash 可能是您想要做的(隐藏您的本地更改以获得干净的工作副本,然后可以在不需要-f 的情况下签出不同的提交)
  • 或者,换一种说法:-f 确实的意思是“力量”,这反过来又意味着“是的,我知道我将永远失去我的工作,我打算这样做”。您必须以其他方式恢复工作(从备份或重新执行)。

标签: git gitignore git-commit git-checkout


【解决方案1】:

如果您使用强制结帐到另一个分支:

git checkout branch_name -f

然后您丢弃本地更改和任何未跟踪的文件。

基本上在您的场景中,您放弃了本地更改并且没有提交并将任何内容推送到主分支。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    • 1970-01-01
    • 2021-12-13
    • 2013-06-28
    • 2015-01-04
    • 2017-03-07
    • 2011-09-17
    相关资源
    最近更新 更多