推送操作将本地提交上传到远程仓库,与团队成员共享你的工作成果。
包含你的新提交
推送 (git push)
接收你的新提交
将本地更改推送到远程仓库:
使用不同的推送策略:
在本地完成工作并提交更改
使用git push上传到远程
确认推送成功完成
git status 确认所有更改已提交重要警告: 强制推送 (git push -f) 会覆盖远程历史,可能导致团队成员的工作丢失。只应在个人分支上使用,切勿在共享分支上使用强制推送。
拉取操作获取远程仓库的最新更改并合并到本地分支,保持代码同步。
包含团队的新提交
拉取 (git pull)
接收团队的新提交
| 策略 | 命令 | 适用场景 |
|---|---|---|
| 合并拉取 | git pull |
默认策略,创建合并提交 |
| 变基拉取 | git pull --rebase |
保持线性历史,个人分支 |
| 仅获取 | git fetch |
只下载不合并,手动处理 |
最佳实践: 使用 git pull --rebase 可以保持提交历史的线性,避免不必要的合并提交。但在共享分支上要谨慎使用变基。
使用git pull获取远程更新
如有冲突,手动解决
提交合并结果
定期拉取远程更改,避免大型合并冲突:
每个功能在独立分支开发:
通过Pull Request进行代码审查:
| 场景 | 操作 | 说明 |
|---|---|---|
| 开始工作前 | 拉取 | 获取最新代码,避免冲突 |
| 完成功能后 | 推送 | 共享工作成果,创建PR |
| 解决冲突后 | 推送 | 上传解决后的代码 |
| 长时间工作 | 定期拉取 | 避免偏离主分支太远 |
| 团队协作 | 频繁推送拉取 | 保持团队同步 |
设置Git配置提高工作效率:
配置说明: push.default simple 是Git 2.0后的默认行为,只推送当前分支到对应的上游分支,更安全可靠。
当远程有本地没有的新提交时:
这是因为你的本地分支落后于远程分支,需要先获取远程更新。
拉取时遇到冲突:
冲突标记 <<<<<<< 和 >>>>>>> 之间的内容需要手动解决。
推送时出现权限错误:
推送时分支不存在:
确保本地有提交后才能推送到远程分支。
团队协作提示: 建立团队的Git工作流程规范,包括分支命名、提交信息格式、代码审查流程等,可以显著减少推送和拉取时的问题。
设置Git别名提高工作效率:
创建脚本简化日常操作:
效率提示: 将常用的Git命令序列封装为脚本或别名,可以显著提高开发效率。特别是对于日常的推送拉取操作,创建自动化脚本可以减少重复劳动。