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

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


感谢阅读,祝君暴富!

相关推荐
码农小旋风1 小时前
详解K8S--声明式API
后端
Peter_chq1 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
Yaml41 小时前
Spring Boot 与 Vue 共筑二手书籍交易卓越平台
java·spring boot·后端·mysql·spring·vue·二手书籍
小小小妮子~1 小时前
Spring Boot详解:从入门到精通
java·spring boot·后端
hong1616881 小时前
Spring Boot中实现多数据源连接和切换的方案
java·spring boot·后端
aloha_7892 小时前
从零记录搭建一个干净的mybatis环境
java·笔记·spring·spring cloud·maven·mybatis·springboot
记录成长java2 小时前
ServletContext,Cookie,HttpSession的使用
java·开发语言·servlet
睡觉谁叫~~~2 小时前
一文解秘Rust如何与Java互操作
java·开发语言·后端·rust
程序媛小果3 小时前
基于java+SpringBoot+Vue的旅游管理系统设计与实现
java·vue.js·spring boot
小屁孩大帅-杨一凡3 小时前
java后端请求想接收多个对象入参的数据
java·开发语言