✨前言✨
📘 博客主页:to Keep博客主页
🙆欢迎关注,👍点赞,📝留言评论
⏳首发时间:2024年6月20日
📨 博主码云地址:博主码云地址
📕参考书籍:《C++ Primer》《C++编程规范》
📢编程练习:牛客网+力扣网
**由于博主目前也是处于一个学习的状态,如有讲的不对的地方,请一定联系我予以改正!!!
1 模拟多个用户
~~~~
我们要保证Linux与Windows环境下都安装好了git,我们在Linux下克隆一个仓库,然后在Windows下克隆同一个仓库,表示两个不同的用户操作同一个仓库!
~~~~
实际开发中,每个⽤⼾都有⾃⼰的gitee/github账号,如果要多⼈进⾏协同开发,必须要将⽤⼾添加进开发者,⽤⼾才有权限进⾏代码提交:
~~~~
目前,我们的仓库中只有⼀个master主分⽀,但在实际的项⽬开发中,在任何情况下其实都是不允许直接在master分⽀上修改代码的,这是为了保证主分⽀的稳定。所以在开发新功能时,常常会新建其他分⽀,供开发时进⾏迭代使⽤。
一般我们都是直接在远程仓库中新建好分支,然后拉取到本地仓库中去!当然也可以在本地仓库建立好分支,上传到远程仓库上去!我们首先需要在本地仓库建立好分支,然后切换到该分支,使用下述命令上传分支信息
git push origin 分支名
如果要从本地删除远端仓库中的分支,我们就先删除本地分支,在删除远程仓库中的分支,与删除标签类似,只不过这里就是换成分支名!
2 多人协作开发
2.1 单分支多人开发
~~~~ 假如上述的两个用户(Linux用户与Windows用户)都针对于一个dev分支进行开发!首先需要保证master分支上的内容是最新的,所以在本地仓库一开始应当拉取远程仓库,假设现在Windows用户在dev分支上开发完成,在Windows环境下的dev分支下进行add,commit操作,写入本地仓库中去,然后使用git push操作提交到远程仓库的dev分支中去,这里我们需要注意一定要是本地分支与远程仓库的分支建立好了链接才可以直接使用这个简短的命令,否则就要像前面分支介绍笔记中一样,要指定才可以,一般从远程仓库clone下来的(不是git pull下来的),就会自动链接好本地分支与远程仓库分支的!我们可以通过以下命令来查看分支信息:
git branch -r ~~~~ //查看远程分支的信息
git branch -vv ~~ //查看本地分支与远程仓库的分支链接情况
我们用以下命令可以使得分支之间建立链接
git checkout -b dev origin/dev //创建本地dev分支,切换到dev分支上,并且建立链接
git branch --set-upstream-to=origin/远程仓库分支名 本地仓库分支名 ~~ //本地分支与远程仓库的分支建立链接
然后在本地仓库将master分支合并到dev分支,确保没有冲突,有冲突就在dev分支下进行修改,然后切换到master分支,在将dev分支中的内容合并到master中去!在上传到远程仓库中的master分支中去!
~~~~
我们在Linux用户下的dev分支进行开发,我们为了避免冲突,先拉取一下远程仓库,保证dev分支中的内容是最新的,然后在dev分支下对代码进行开发,开发完成之后进行add,commit操作,在提交到远程仓库对应的dev分支上,然后在本地仓库将master合并到dev分支,没有冲突与代码的bug,我们在合并到master分支上,并提交到远程仓库中去!
~~~~
简单总结一下来说就是,单分支的多人协作开发,是容易出现冲突的,我们首先必须确保master分支上的内容必须是最新的,所以在开发前就必须在master分支下拉取远程仓库中master分支对应的内容,然后在切换到dev分支开发,然后add,commit操作,然后在提交到远程仓库,如果提交失败有冲突,说明在我们开发过程中,有人又上传了代码,所以我们就必须在拉取远程仓库中的内容,然后解决冲突,在重新add,commit操作之后,在git push到远程仓库就行了!最后,我们还要合并master分支与dev分支,合并的方法上面已经说过了!合并完分支之后删除掉分支就可以了!
2.2 多分支多人开发
在实际的开发中,有许多的功能,我们一个功能交给一个人来进行开发,我们就可以用一个分支来对应一个功能!本次我们创建一个feature-1和feature-2两个分支对应着两个功能,feature-1分支给Linux用户用,feature-2给Windows用户用!我们直接在远程仓库中创建这两个分支,然后在对应的用户环境中创建对应的分支并且建立好链接!也就是说这样各自开发,冲突的概率就会小!我们往feature-1分支上传linux.txt文件,往feature-2分支上传Windows.txt文件!下图所示,是在linux环境下:
下面我们用Windows环境下来进行尝试!
由于Linux环境下先进行开发,所以我们就需要feature-1的内容合并到master上,我们就先切换到linux环境下的master分支,拉取远程仓库,确保本地仓库中的master分支是最新的!然后在进行合并操作
同理,我们对Windows环境下用户也是如此操作
经过上述操作,此时远程仓库中的master分支就有了以上的两个文件
假如Windows用户今天请假了,需要Linux用户需要帮助Windows用户进行开发,我们应当也是同样的做法!
2.3 合并
对于合并操作,我们一般是在远程仓库申请合并就可以了!
上述多人协作开发中的合并操作是基于学习的,能够让我们进一步熟练的使用git命令而言的!
选择要合并的分支之后,只需要管理员进行处理就可以了!
3 远程分⽀删除后,本地git branch -a依然能看到的解决办法
我们查看远端仓库的分支时,我们可以发现,已经删除的分支,依旧还是可以显示的!
我们可以使用下面这个命令进行删除操作!
- git remote prune origin
使用该命令之后,我们可以发现,确实移除了不在的分支,如下图所示: