• git多人协作开发


    原理:最典型的做法,首先创建一个服务器,被多人所操作.

    步骤:

    1. 创建一个git裸服务器  git init –bare (两个中横岗)
    2. 从裸服务器将版本克隆到本地 git clone
    3. 本地常规操作
    4. 推送版本至服务器 git remote+git push orgin master
    5. 从远程服务器拉取版本 git pull

     

    Win10下操作

    1创建一个git裸服务器 git init --bare
    由负责人来完成的。服务器新建一个项目目录 git-server

    建完后项目文件夹显示:(没有.git文件夹)

    使用git init 创建之后,会有一个隐藏的.git目录。目录中的才是现在看到的内容。
    也就是说,现在根本就没有.git目录了。这就意味着在这个目录中,不能做常规的开发。

    (2).从裸服务器将版本库克隆至本地(git clone
    git版本服务器,一般是不做任何开发工作的。如果要开发项目,就需要将版本库从服务器克隆到本地。
    假设有一个程序员甲,开始自己的工作了。
    使用命令 git clone git版本服务器地址
    windows下面,就是使用绝对路径,如下:

    H:盘建立本地库(先进入HCd h:

    Git clone C:/Users/Maibenben/Desktop/git-server       (注意/方向)

       

    H盘,多了个文件夹,甲可以在这个文件夹下开发

     

    (3).本地常规操作
    甲可以,在本地进行常规开发。

    甲的第一个模块(功能)开发完毕。需要将其推送到服务器。

    (4).推送版本至服务器 git remote + git push origin master
    当在本地完成一个模块(功能),需要推送到服务器,供其他同事使用。
    第一件事情,需要知道服务器在哪儿?
    git remote

    第二件事情,直接推送即可
    git push origin master
    其中origin就是使用git remote得到的远程服务器的名称。
    master表示是主分支。

    对于甲来说,它的工作已经告一段落了,该轮到乙程序员出场了。

    .

    乙程序员,首先将版本库从git服务器上克隆到本地。(I盘下工作)

    1git clone

    打开这个目录,然后进可以看到最新新的内容,如下:

    对于乙而言,可以在本地进行常规开发。与此同时,甲继续他的常规开发。
    模拟乙程序员在本地的开发

    乙的工作区

    与此同时,甲也在进行代码修改。看下甲的工作区

    甲PUSH出错

    出错了
    之所以会出错,原因在于:其他程序员已经将最新的一个版本提交到git服务器上,但是你在提交之前,已经不是最新的。
    在这种情况下,甲,需要先从服务器拉取最新的版本。

    (5).从远程服务器拉取版本(git pull
    在多人协助开发时,每个开发人员在推送自己的最新版本时,都需要确保当前版本是最新的,所以就需要先获取最新版本,也就是说需要从服务器拉取最新版本到本地。
    需要使用 git pull命令

    操作命令时,会弹出编辑器,在里面输入信息后关闭即可。

    Git pull后甲的工作区

    如此一来,甲当前就是最新的版本。
    然后再次使用 git push 命令推送至服务器。

    接下来需要分两种情况:
    如果有新的开发人员加入进来,重复2~5过程。
    如果不是新的开发人员,重复3~5过程。
    比如,对于乙而言,其实它现在已经不是最新的版本了,所以需要使用 git pull 拉取最新版本。

    所以,对很多开发人员而言,一打开电脑,马上先git pull,拉取最新的。然后进行常规开发,
    开发完毕之后,在git push之前,还需要使用git pull再拉取一遍。
    如果还有一个新的程序员丙,加入了,怎么办呢?
    需要先git clone,然后就进行常规开发,推送版本、拉取版本。
    在整个协作开发时,有时候会出现冲突。通常都是由于开发人员分工不明确导致的,所以如果出现这种情况,需要两个程序员协商解决。

    如果两人同时修改了同一部分的源代码,push 时就很容易发生冲突。所以多名开发者在同一个分支中进行作业时,为减少冲突情况的发生,建议更频繁地进行 push 和 pull 操作。

    参考: 
    https://blog.csdn.net/weixin_43501172/article/details/115549918?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1-115549918-blog-125517682.pc_relevant_multi_platform_whitelistv3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1-115549918-blog-125517682.pc_relevant_multi_platform_whitelistv3&utm_relevant_index=2

  • 相关阅读:
    Webpack--CSS、Sass、Scss的import中~(波浪线)的作用
    “哪李贵了”主播带货电商被喷,说到底还是服务问题
    【毕设选题推荐】机器人工程专业毕设选题推荐
    STM32个人笔记-看门狗
    整理一些Windows桌面运维常用的命令,并且整合成脚本
    使用 PyTorch 搭建网络 - train_py篇
    【slam十四讲】【整个库的安装】
    考CISAW的N个理由!
    Makefile文件里的赋值方法(第三节)
    使用Windbg排查线程死锁引起的连不上服务器问题
  • 原文地址:https://blog.csdn.net/nownow_/article/details/126230796