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的目的是让查看历史提交的变化看起来更简单

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


感谢阅读,祝君暴富!

相关推荐
Java水解6 分钟前
深度解析MySQL中的Join算法:原理、实现与优化
后端·mysql
一语长情6 分钟前
关于Netty的DefaultEventExecutorGroup使用
java·后端·架构
易元7 分钟前
设计模式-状态模式
后端·设计模式
bug菌7 分钟前
🤔强一致性 VS 高可用性:你为啥没get到延迟预算的真正意义?
分布式·后端·架构
天天摸鱼的java工程师8 分钟前
面试官灵魂拷问:Java 内存模型如何守护线程安全?
后端
brzhang22 分钟前
Kotlin Multiplatform (KMP) vs. Flutter:谁才是下一代跨平台开发的真正王者?
前端·后端·架构
生信研究猿24 分钟前
使用git上传项目到github
git·github
小巫程序Demo日记33 分钟前
Spark DAG、Stage 划分与 Task 调度底层原理深度剖析
java·spark
Java中文社群44 分钟前
ChatClient vs ChatModel:开发者必须知道的4大区别!
java·人工智能·后端
刘一说1 小时前
资深Java工程师的面试题目(五)微服务
java·微服务·面试