如何使用覆盖更改进行git拉取

如何使用覆盖更改进行git拉取,git,version-control,Git,Version Control,我很难用git覆盖远程回购的更改 我在master上,git状态show1修改文件 现在我想使用git pull,这样所有当前的修改都会被来自master的pull覆盖 我试过这个 git pull-x其继承人 然后在最后一个错误中,我发现xxxx文件有一些修改。把它们交出来或藏起来。然后它将退出并退出abort 我不得不隐藏更改,然后再次git-pull使其工作 我如何在不隐藏的情况下做到这一点呢?您遇到的情况是,git merge(由git pull调用)只对提交有效,而对未提交的更改无效。

我很难用git覆盖远程回购的更改

  • 我在master上,
    git状态
    show1修改文件
  • 现在我想使用git pull,这样所有当前的修改都会被来自master的pull覆盖
  • 我试过这个

    git pull-x其继承人

    然后在最后一个错误中,我发现xxxx文件有一些修改。把它们交出来或藏起来。然后它将退出并退出
    abort

    我不得不隐藏更改,然后再次
    git-pull
    使其工作


    我如何在不隐藏的情况下做到这一点呢?您遇到的情况是,
    git merge
    (由
    git pull
    调用)只对提交有效,而对未提交的更改无效。要保留未提交的更改,请先提交或隐藏它。您基本上有三个选择:

  • 提交您的更改

    git add modified-file.txt; git commit
    
  • 把你的零钱藏起来(大概是为了以后把它拆下来)

  • 扔掉对该文件所做的更改:

    git checkout the-modified-file.txt
    
  • 你可以试试

    git reset --hard HEAD (will throw away uncommitted changes)
    git clean -f -d
    git pull
    
    如果您有未跟踪的文件和目录,则clean是可选的

    git reset --hard HEAD && git clean -f -d && git pull (in one cmd)
    

    类似的建议应该附带一个警告,即
    git reset--hard
    命令将丢弃未提交的更改。和
    git clean
    将丢弃git未跟踪的文件。为此,将添加警告,但这是问题的要求如果您想丢弃所有未提交的更改,您可以只执行
    git stash
    SparrowG-git stash不会丢弃未提交的更改。
    git reset --hard HEAD && git clean -f -d && git pull (in one cmd)