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(+)