【问题标题】:git pull: update repo without changing the contents of a specific directorygit pull:更新 repo 而不更改特定目录的内容
【发布时间】:2012-12-20 13:48:14
【问题描述】:

我想用远程系统更新我的本地系统 repo,但我不想触及一个特定目录 myDir 的内容。 请注意,此目录稍后在 master 分支中更新,但我想保留它的旧版本。

最好的方法是什么?

谢谢, 李

【问题讨论】:

  • 这些更改是要在特定提交中保持引用,还是在当前分支中未提交?
  • 它们在当前分支中未被提交
  • 你当前的分支是master还是另一个? (如果是另一个,您可以安全地提交它们,然后如果您想稍后细化您的提交,则可以重新设置。)

标签: git git-pull


【解决方案1】:

git pull 只是 git fetchgit merge 合二为一。

如果您只想更新您的存储库而不合并,一个简单的git fetch 就足够了。

【讨论】:

  • 让我试着澄清一下:我的本地分支比远程主分支更老。我想合并来自远程主分支的所有更改,但想保留某个目录的旧版本。理想情况下,我会使用带有“忽略目录”标志的拉取命令。
  • Git 不允许部分签出(正如您对 SVN 等系统所期望的那样)。
【解决方案2】:

如果您不希望从远程拉取来覆盖您尚未提交的工作,请使用stash 临时保存您的工作。从您的工作目录:

  1. git stash 会将您所有未提交的更改保存到外部堆栈中
  2. 您现在可以git pull 并使用远程更改更新您的本地存储库
  3. 现在使用git stash popgit stash apply 将隐藏在pull 之后的更改带回工作目录

另一个提示:您可以存储多个工作块,并且它们都可以堆叠;使用git stash list 查看您当前隐藏的所有物品。

【讨论】:

  • 如果我正确理解 OP,git stash 在这种情况下是不必要的复杂化。
猜你喜欢
  • 2021-03-31
  • 2011-06-02
  • 2017-04-10
  • 2015-01-11
  • 2017-12-31
  • 1970-01-01
  • 2012-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多