git fetch - 查看和修改传入的更改
git fetch - reviewing and modifying incoming changes
我读到 git pull
= git fetch
+ git merge
,后者通常是首选,因为它允许人们在合并之前查看更改。
我们的小型开发团队正在服务器上共享一个 git 存储库。我的同事刚刚推送,我获取,所以他的提交现在在我的本地存储库中。我可以通过以下方式看到它们:
git log ..origin/mybranch
并检查它们:
git diff <hash>
现在假设我想将更改合并到我的工作副本中,但我不喜欢某些提交或一次提交的一部分。
我的问题是:
- 在将提交合并到我的工作副本之前,我如何处理 "modifying" 提交?
- 如果我能做到以上几点,会影响远程仓库吗? (例如,我读到过推送后不应该变基)
- 如果我无法执行上述操作,合并后如何修复更改? (例如,手动,...)
简而言之:有人可以概述通常在 "fetch" 和 "merge" 之间执行的操作以查看和编辑更改吗?
您可以在不提交结果的情况下进行合并:
git merge --no-ff --no-commit <hash>
然后你重置索引(但不是反映合并的工作树)
git reset
最后,您可以 git add
任何文件,甚至 git add --patch
部分 您想要保留在合并结果中的文件。
或者您可以完全拒绝合并文件:git checkout HEAD -- aFile
.
您在“How do you merge selective files with git merge
?”中还有其他选项
我读到 git pull
= git fetch
+ git merge
,后者通常是首选,因为它允许人们在合并之前查看更改。
我们的小型开发团队正在服务器上共享一个 git 存储库。我的同事刚刚推送,我获取,所以他的提交现在在我的本地存储库中。我可以通过以下方式看到它们:
git log ..origin/mybranch
并检查它们:
git diff <hash>
现在假设我想将更改合并到我的工作副本中,但我不喜欢某些提交或一次提交的一部分。
我的问题是:
- 在将提交合并到我的工作副本之前,我如何处理 "modifying" 提交?
- 如果我能做到以上几点,会影响远程仓库吗? (例如,我读到过推送后不应该变基)
- 如果我无法执行上述操作,合并后如何修复更改? (例如,手动,...)
简而言之:有人可以概述通常在 "fetch" 和 "merge" 之间执行的操作以查看和编辑更改吗?
您可以在不提交结果的情况下进行合并:
git merge --no-ff --no-commit <hash>
然后你重置索引(但不是反映合并的工作树)
git reset
最后,您可以 git add
任何文件,甚至 git add --patch
部分 您想要保留在合并结果中的文件。
或者您可以完全拒绝合并文件:git checkout HEAD -- aFile
.
您在“How do you merge selective files with git merge
?”中还有其他选项