git pull 和 git fetch的区别

文章类型:git

发布者:admin

发布时间:2023-04-12

一:git pull:自动更新合并

1: 命令会从远程仓库下载最新的代码,并将其合并到本地分支中。

2:实际上是 git fetch 和 git merge 两个命令的组合。

3:如果本地有未提交的修改,git pull 会尝试自动合并这些修改,如果有冲突则需要手动解决冲突

二:git fetch:手动合并

1:命令会从远程仓库下载最新的代码,但不会自动合并到本地分支中。

2:它只是将远程分支的更新保存到本地仓库中,可以通过 git merge 命令或者 git rebase 命令手动将这些更新合并到本地分支中。

3:相比于 git pull,git fetch 更加安全,因为它不会修改本地分支的历史记录

三:总结

1:建议使用 git fetch 命令来获取最新的代码更新,安全地获取最新的代码更,再手动合并到本地分支中,以避免潜在的代码冲突和不可预期的代码合并

四:代码演示

1:创建仓库 和分支

$ git init
$ echo "Hello, world" > README.md
$ git add README.md
$ git commit -m "Initial commit"
$ git branch feature
$ git checkout feature
$ echo "New feature" >> README.md
$ git add README.md
$ git commit -m "Add new feature"

2:添加新属性并提交

$ git checkout master
$ echo "Another change" >> README.md
$ git add README.md
$ git commit -m "Update master branch"

3:通过git pull拉取

$ git checkout feature
$ git pull origin master
//拉取文件
Updating b7d6eb5..08e7a70
Fast-forward
README.md | 1 +
1 file changed, 1 insertion(+)

4:通过git fetch拉取,拉取了代码,不会自动合并,需要手动合并

$ git checkout feature
$ git fetch origin master

git merge origin/master
//合并后的文件
Updating b7d6eb5..08e7a70
Fast-forward
README.md | 1 +
1 file changed, 1 insertion(+)