Git多人协作场景的使用

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

文章目录

  • Git多人协作
    • [1. 查看远程仓库](#1. 查看远程仓库)
    • [2. 推送代码](#2. 推送代码)
    • [3. 拉取分支](#3. 拉取分支)
    • [4. rebase](#4. rebase)

Git相关文章参考:
Git学习和使用指南简单篇
Git学习和使用指南详细篇
Git命令汇总

Git多人协作

git 本地仓库与远程仓库建立连接时是将本地的master分支和远程的master分支对应

远程仓库的默认名称为origin

1. 查看远程仓库

查看远程仓库名

l 复制代码
git remote

查看远程仓库详细信息

l 复制代码
git remote -v

该命令可查看到抓取fetch和推送push的地址,若无推送权限则不会显示push地址

2. 推送代码

把当前分支本地提交的代码推送到远程仓库,推送时需要指定本地分支,git将该分支推送到远程仓库对应的远程分支上
推送语法:

l 复制代码
git push origin <branch>

举例:

将本地master分支的提交推送的对应的远程仓库的master分支

l 复制代码
git push origin master

将本地dev分支的提交推送到对应远程仓库的dev分支

l 复制代码
git push origin dev

注意:

master分支为主分支,时刻需与远程同步,故需推送

dev分支为开发,团队成员都需要使用,故需推送

bug分支只用于本地修复bug,无需推送

feature分支需不需要推送取决于是否合作开发

3. 拉取分支

当多人协同工作时,不同人提交的代码不同,代码需要合并,此时推送代码可能会失败,需要解决冲突后提交

当前分支为master,先切换到dev,并将dev与远程的dev连接

l 复制代码
git checkout -b dev origin/dev

在dev分支上修改代码,然后添加、提交并推送到远程仓库

l 复制代码
git add .
l 复制代码
git commit -am "描述信息"
l 复制代码
git push origin dev

如果其他人也提交了你修改的那个文件,并且文件内容做了和你不同的修改,则可能会冲突,推送失败

此时需要先拉取最新的代码

l 复制代码
git pull

若拉取失败,原因根据提示可能是本地dev未指定远程origin/dev,直接设置本地与远程dev的连接

l 复制代码
git branch --set-upstream-to=origin/dev dev

建立链接后再拉取

l 复制代码
git pull

拉取成功,解决冲突然后提交再推送

l 复制代码
git commit -am ""
l 复制代码
git push origin dev

总结多人协作的代码拉取:

  • 先git push origin <branch-name>推送代码
  • 失败则git pull拉取最新代码到本地
  • 有冲突则解决冲突后并提交git commit
  • 然后推送git push origin <branch-name>

注意:
git pull提示no tracking information表示本地与远程分支未建立链接

用命令建立连接git branch --set-upstream-to <branch-name> origin/<branch-name>

4. rebase

rebase操作可以把本地未push的分叉提交历史整理成直线

rebase的目的是让查看历史提交的变化看起来更简单

缺点:本地的分叉提交会被修改


感谢阅读,祝君暴富!

相关推荐
福建佰胜张工2 分钟前
SMC 薄型气爪 MHF2-16D1 深度解析:平行开闭、低剖面结构在自动化装配中的选型与落地
java·服务器·安全·自动化
念何架构之路2 分钟前
go-grpc设计思想
开发语言·后端·golang
catoop5 分钟前
API Key 设计与安全生成方案:结构拆解、数据库设计与 Java 实现
java·数据库·安全
system_error_x33 分钟前
SpringBoot 集成 Thymeleaf 简洁入门
java·spring boot·后端
驭渊的小故事1 小时前
Spring AI Alibaba 实战:从maven依赖治理到声明式工具调用
java·人工智能·spring
Elastic 中国社区官方博客1 小时前
我们如何通过 70 多个拉取请求,将 OpenTelemetry Java agent 迁移到 invokedynamic
java·大数据·开发语言·elasticsearch·搜索引擎·全文检索·es
tyn1882 小时前
记录本地安装nacos服务的方法及异常
java·开发语言
步行cgn2 小时前
Spring MVC 视图机制的核心接口与类
java·开发语言·后端·spring·mvc
y1su2 小时前
Leetcode 字符串模板
java·数据结构·算法·leetcode·职场和发展·动态规划
码事漫谈3 小时前
AI 读你的提示词,其实很没耐心
后端