赞
踩
目录
由于忍受不了GitHub访问速度 ,还是更喜欢国内的gitee,页面加载是真的很流畅
gitee:Gitee - 基于 Git 的代码托管和研发协作平台
在gitee官网新建仓库
比如现在我是userA,并在本地建了一个项目,该项目现在只有一个文件夹名为userA
在当前文件夹里右键点击“git bash here”
这时候刷新gitee官网,可见本地项目已成功推送到远程
然后现在在本地添加dev.txt文件
在命令行从master分支上新建并切换到dev分支,然后add,remote,再将当前dev分支推送到远程dev分支,并将它们关联起来
(注意:git push origin dev -u 这行命令,由于是第一次推送到远程dev分支,所以加上-u让本地和远程的dev分支关联起来,否则后面在推送时会提示未关联远程项目,造成不必要的麻烦。这次加上-u关联起来后,后面就不用加-u 了,直接使用git push origin dev推送就行)
这时候远程刷新,可以看到多了一个dev分支,就是刚刚我们推送过来的
查看dev分支,会看到dev分支上有test.txt和dev.txt文件
而查看master分支,会发现只有test.txt,而没有dev.txt文件。为什么?因为我们还没有将dev分支的内容合并到master分支上
接下来我们将dev分支合并到master分支上。
先切换到master分支,再使用git merge dev命令合并dev分支,合并后,本地的master分支上就有了dev.txt的内容了,也就是有了dev.txt了,此时再将合并后的本地master分支推送到远程,这样远程master分支就会也有dev.txt文件了
刷新远程,可以看到master分支确实有了dev.txt分支了!
这样就完成了一个最基本的过程了。
而在实际项目开发中,通常开发不是单打独斗,而是要多人协作,因此,我们有必要模拟一下多人开发的场景
接下来程序员B,即userB上场了
userB准备在userA的基础上进行开发,于是userB也在本地建了一个文件夹命名为userB
然后复制了远程的项目
首先userB文件夹是空文件夹。克隆项目后,userB文件夹中就出现了test文件夹
进入到test文件夹(此时test文件夹中是空的,还没有任何内容)
于是要将远程的dev分支拉过来,使用命令:git checkout -b dev origin/dev
可以看到test文件夹中就有了dev.txt 和test.txt文件了
然后userB添加了新的文件,为userB.txt,并将其推送到远程的dev分支上
那么接下来,让人最难受的地方就来了
由于在userB修改test文件夹内容的时候,userA同样也在修改test文件夹内容
userA在test文件夹中添加了userA.txt,同样,他也准备把userA.txt推送到远程dev分支上
此时他使用git push origin dev命令进行推送,却发现推送失败!
为什么?因为在他之前,userB已经编辑了test文件夹并推送到了远程dev分支上,所以起了冲突!
如何解决呢?
这时候的思路就是:将远程最新的dev分支,也就是userB推送后的dev分支内容拉取到本地,然后在本地解决起冲突的部分内容,该合并的合并,该删的删,解决后,再推送到远程dev就可以了
命令行中执行拉取命令:git pull ,执行后会出现以下界面
这里就是说为什么要合并这个内容,让写一个注释,不写也没关系,直接输入:wq,按回车就行了
这里就打开test文件夹,查看并编辑到底是哪里的内容出了冲突
冲突解决好后,就可以重新推送到远程dev分支了
不过,在这里push推送之前,一定需要记得再重新添加(git add .)内容和提交(git commit -m 'xx')一下
刷新远程dev分支,就可以看到解决冲突后的内容啦
对于每一个git项目,我都习惯依次建立三个分支:master=>dev=>feature
这样就切换到了master/dev/feature分支上了,保证了master分支的安全性。
如果feature分支的项目崩了,就可以按照如下方式补救:
如果觉得feature分支没有问题了,想要提交到dev分支,如下:
这里是github的入门:Git的下载安装以及基本操作_asdfsdgfsdgfa的博客-CSDN博客_git如何安装
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。