如何在不删除更改的情况下使用GitHub中的文件覆盖本地目录中的文件?

时间:2017-02-27 06:02:48

标签: git github command-line

我想要完成的任务的要求如下:

  • 使用主文件覆盖本地目录中的文件
  • 然而,不应删除主分支中不存在的任何文件

即。我的主分支中有 a b c 文件。

我的本​​地目录中有 a b c d 文件。

文件 b c 在我的本地目录中已过期,因此我想用 b c覆盖它们来自主分支。

但是,在执行此操作时,我不希望删除文件 d

(注意:我不想手动更新b和c,因为在我的情况下,我正在处理许多文件。所以,我不想手动提取所有这些文件。 )

另外,为了更清楚,我希望从命令行执行此操作。 (如果有帮助的话,我在Mac上使用终端。)

2 个答案:

答案 0 :(得分:0)

如果发生冲突,请拉主人并接受--theirs

$ git pull origin master -s recursive -X theirs

<强>替代:

$ git pull origin master          
$ git checkout --theirs -- .     # accept 'remote/master' changes

答案 1 :(得分:0)

你可能想要隐藏更改,然后在你拉动后解除阻止。

简而言之,这几乎是:

git stash  
git pull
git stash apply

有关存储的更多信息,请参见here

以上是针对您不想删除的文件尚未提交的情况。对于已提交但未推送至origin的文件,git pull --rebase可能就是您所追求的目标。