GIT:更新到特定版本

标签 git

我在 8 个月前检查了一个项目副本,在那里做了很多更改。 现在,我想接受过去 8 个月的所有新变化。更改的数量是巨大的(数万次提交)。我想做的是一次进行 1 个月的更改,与我的版本 merge ,进行测试。如果我 pull 最新的变化/冲突的数量是压倒性的。

所以...我想我想做什么很清楚,但我不知道如何用 GIT 来做(我对 svn 更熟悉)。我在 Windows 上使用 TortoiseGit。我提交给本地分支机构的所有本地更改,我需要做什么来提取自 checkout 以来所做的更改,但不是全部?

谢谢

最佳答案

pull 只是 fetch 加上 merge 的组合。因此,执行 fetch 将所有远程更改获取到您的本地 repo,然后执行 git log master..origin/master 以获取在 origin 因为你的分支已经发散,然后在大约一个月前选择任何 SHA1 并 git merge SHA1 将它 pull 入你的 master 分支。起泡、冲洗、重复。

如果您这边的更改较少,则执行 git checkout -b upstream origin/mastergit log upstream..master 和一次 merge 一个月的更改。

不过,从长远来看,我不知道拆分它是否最终会减少工作量。如果将所有内容 merge 为一个 block ,那么您并不是真正 merge 10,000 个提交,而是 merge 分支的tips,这意味着所有这些提交基本上都被压缩成一个大提交。 p>

关于GIT:更新到特定版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7237132/

相关文章:

eclipse - 协作者如何将他们的更改推送到我在 GitHub 中的存储库

GIT Pull 删除了我的提交

git - Jenkins Artifactory 插件 : Updating to the Latest Snapshot on Git

c# - 为什么从 C# 代码中获取 Git 不起作用

Github: pull 请求后清理 fork

git - VSCode + WSL 远程 + Git : Synchronizing changes take forever

GIT - 将最新的分支复制到另一个目录

git - 我如何选择用本地提交覆盖远程存储库?

git - 我可以在 git 中为 "pull --rebase"设置别名吗?

Git:撤消 merge 失败后的本地更改