Cherry-pick
使用场景:假设您正在与一组开发人员一起开发一个中型到大型的项目。由另一个团队成员提出的一些更改,您希望将其中的一些更改应用于您的主项目,而不是全部。因为管理几个 Git 分支之间的更改可能成为一项复杂的任务,您不希望将整个分支合并到另一个分支中。你只需要选择一个或两个特定的commit。从其他分支中挑选一些变更到您的主项目分支中
,这被称为“cherry-pick”。
语法 git cherry-pick commit_id
Fetch
Git fetch 是一个命令,它告诉本地 git 从原始数据中检索最新的元数据信息(但不进行任何文件传输),这更像是检查是否有任何可用的更改)
。
语法: git fetch< repository Url>
- 也可以指定分支名称
git fetch <branch URL><branch name>
- 或者是所有的分支
git fetch -all
Pull
先fetch,更改并将它们merge到同名的本地分支中。
git pull可以实现并从远程存储库中复制那些更改,有一个merge的动作.
实际 git pull = git fetch + git merge
.
用法最也简单git pull <option> [<repository URL><refspec>...]l
小结
git fetch | git pull | cherry-pick |
---|---|---|
只从远程存储库中下载新数据 | 用于使用来自远程最新更改更新本地当前的 HEAD 分支 | |
用于获取远程存储库中发生的所有事情的新的信息 | 下载新的数据,并直接集成到您当前的工作,merge文件 | 拉取并把改commit置位第一个 |
从不操纵或破坏数据 | 拉下载数据并将其与当前工作文件merge | 会merge文件 |
代码不受合并冲突的影响 | 有代码冲突,肯定会受到merge conflict | 有代码冲突,肯定会受到merge conflict |
最好使用 git fetch 命令和 git merge 命令对一个已pull的存储库进行操作 | 有了仓库,建议不要这么用 | 有了仓库,建议不要这么用 |
这个网站的介绍非常好,也写的非常的详细,包括一些常见的使用场景都提到了.
https://w3cschoool.com/git-fetch
read more
https://blog.osteele.com/2008/05/my-git-workflow/
https://w3cschoool.com/git-cherry-pick