主页 > 开源代码  > 

【git】工作流实战:从本地仓库到远程仓库,gitpull与gitrebase使用讲解,案例解析

【git】工作流实战:从本地仓库到远程仓库,gitpull与gitrebase使用讲解,案例解析
Git 工作流实战:从本地仓库到远程仓库

将代码从本地仓库推送到远程仓库,并模拟公司团队协作的场景。

如果还没有连接远程仓库可以注册一下Gitee gitee /

新建仓库复制https

git init

git remote add origin 粘贴https

一、推送代码到远程仓库 查看远程仓库信息:使用 git remote -v 命令查看远程仓库的信息。 git remote -v 你会看到类似以下的输出: origin github /company/project.git (fetch) origin github /company/project.git (push) 这表示你的本地仓库已经与远程仓库 origin 关联。 推送代码:使用 git push 命令将本地仓库的代码推送到远程仓库。 git push origin feature/login 这会将本地仓库的 feature/login 分支推送到远程仓库,并在远程仓库创建一个同名的分支。 查看远程仓库:在代码托管平台 (例如 GitHub、GitLab) 上,找到你刚刚推送的分支 feature/login,确认代码已经成功推送。 二、团队协作场景模拟

假设你和你的同事 Alice 一起开发登录功能,你们分别负责不同的部分。

Alice 克隆仓库并创建分支:Alice 克隆远程仓库到本地,并创建自己的开发分支 feature/login-alice。 git clone github /company/project.git cd project git checkout -b feature/login-alice Alice 开发功能并推送代码:Alice 在自己的分支上开发登录功能,并推送代码到远程仓库。 # 修改代码 git add . git commit -m "Alice: 完成登录表单样式开发" git push origin feature/login-alice 你拉取最新代码:在开始开发之前,你需要拉取远程仓库的最新代码,确保你的代码是基于最新的代码进行开发。 git checkout main git pull origin main git checkout feature/login git merge main 这会将远程仓库 main 分支的最新代码合并到你的 feature/login 分支。 你开发功能并推送代码:你在自己的分支上开发登录功能,并推送代码到远程仓库。 # 修改代码 git add . git commit -m "完成登录表单验证逻辑开发" git push origin feature/login

创建 Pull Request (PR):你和 Alice 分别完成开发后,在代码托管平台上创建 PR,请求将各自的开发分支合并到 main 分支。

代码审查:你和 Alice 互相审查对方的代码,提出修改意见。

合并代码:通过审查后,将 feature/login 和 feature/login-alice 分支的代码合并到 main 分支。

删除开发分支:合并完成后,删除本地的 feature/login 和 feature/login-alice 分支。

git branch -d feature/login git branch -d feature/login-alice
实际工作中不推荐git pull 而是使用git fetch和gitrebase Git 分支同步实战:git fetch 与 git rebase 的完美搭配

在团队协作开发中,保持本地分支与远程主分支 (main 或 master) 的同步至关重要。git fetch 和 git rebase 是完成这一任务的黄金组合,它们可以帮助你优雅地同步代码,避免不必要的合并提交。

一、案例背景

假设你正在开发一个名为 feature-branch 的功能分支,而你的同事已经将一些更改推送到了远程主分支 origin/main。你需要将这些更改同步到你的 feature-branch 分支,以确保你的代码基于最新的代码库。

二、同步分支代码的步骤 1. 切换到你的功能分支 git checkout feature-branch 2. 拉取远程仓库的所有更新 git fetch origin git fetch origin:从远程仓库 origin 拉取所有分支的最新提交,但不会自动合并到你的本地分支。git fetch origin main:如果你只想拉取 main 分支的更新,可以使用这个命令。 3. 将你的本地提交基于远程 main 分支重新排列

当前处在feature-branch分支

git rebase origin/main git rebase origin/main:将 feature-branch 分支的本地提交“重新放”在 origin/main 分支的最新提交之上。git pull --rebase origin main:这个命令等同于 git fetch origin main 加上 git rebase origin/main,但更推荐分开执行,以便更好地控制流程。 4. 解决冲突(如果有)

如果在 rebase 过程中发生冲突,Git 会提示你解决冲突。你需要:

手动编辑冲突文件,解决冲突。使用 git add <文件名> 将解决冲突后的文件标记为已解决。使用 git rebase --continue 继续 rebase 过程。 5. 推送更新到远程仓库 git push origin feature-branch --force-with-lease --force-with-lease:安全地强制推送你的本地分支到远程仓库,确保不会覆盖其他人的提交。 三、为什么不推荐直接 git pull?

直接使用 git pull 相当于 git fetch 加上 git merge,如果远程仓库和本地仓库都有新的提交,就会产生一个合并提交,使得提交历史变得臃肿。

示例:

git pull origin main 如果远程 main 分支和本地 feature-branch 分支都有新的提交,Git 会自动创建一个合并提交,将两个分支的历史合并在一起。这种合并提交通常是不必要的,而且会使提交历史变得难以阅读git log很臃肿。 四、git rebase 的优势 保持提交历史的线性:git rebase 会将你的本地提交“重新播放”在远程分支的最新提交之上,保持提交历史的线性,更容易阅读和理解。避免不必要的合并提交:git rebase 不会创建合并提交,使得提交历史更加简洁。
视频案例

可以看b站技术蛋老师的视频,很直观清晰 Git工作流和核心原理 | GitHub基本操作 | VS Code里使用Git和关联GitHub


rebase前后的直观图例:

身处master分支,使用 git rebase dev


github /0voice

标签:

【git】工作流实战:从本地仓库到远程仓库,gitpull与gitrebase使用讲解,案例解析由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【git】工作流实战:从本地仓库到远程仓库,gitpull与gitrebase使用讲解,案例解析