赞
踩
原理:最典型的做法,首先创建一个服务器,被多人所操作.
步骤:
Win10下操作
(1)创建一个git裸服务器 (git init --bare)
由负责人来完成的。服务器新建一个项目目录 如 git-server
建完后项目文件夹显示:(没有.git文件夹)
使用git init 创建之后,会有一个隐藏的.git目录。目录中的才是现在看到的内容。
也就是说,现在根本就没有.git目录了。这就意味着在这个目录中,不能做常规的开发。
(2).从裸服务器将版本库克隆至本地(git clone )
在git版本服务器,一般是不做任何开发工作的。如果要开发项目,就需要将版本库从服务器克隆到本地。
假设有一个程序员甲,开始自己的工作了。
使用命令 git clone git版本服务器地址
在windows下面,就是使用绝对路径,如下:
在H:盘建立本地库(先进入H盘Cd 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盘下工作)
(1)git 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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。