目录
远程库
创建
重命名
推送push
克隆clone
添加队员
切换账号
拉取pull
协同开发冲突
跨团队协作
工作流
集中式
gitflow
forking
先去github注册账号,过程略,然后选择新建
然后下面随便选选
微软爸爸真有钱,然后我们就能看到这一串url,我们就能在本地库上使用这一串url
每一次使用不可能都去粘一段这么长的玩意儿,用起来很麻烦,因此我们可以让本地库记住这一串url,就可以用我们熟悉的命名替代它。
我们先随便找个地方创建一个本地库
设置一下自己的签名:
然后我们随便创建一个文件,添加到缓存并且上传
然后我们就可以上传到github对应的url了,但是在此之前我们先保存一下对应的url方便我们下次访问
使用这个命令查看是否有添加的东西
这里我们发现之前没有添加任何远程路径,我们添加一下,这样我们就可以通过test_project关键字快速访问对应的url了
fetch指取回,push指推送 ,然后我们可以推送对应的分支版本,具体的分支创建b
push意味着从本地库上传新的东西到远程库
格式为:git push+url(用别名代替)+分支名
这里只有master分支并没有创建slave分支,因此直接上传
我们去github上看一下,果然就有对应的文件了
clone意味着从远程库下载内容到本地库
我们退出当前文件夹,创建一个新的
我们clone到本地指令为git clone + url
注意这里的url需要自己去手动粘贴,因为上面创建的快速只支持push和fetch,不支持clone
再去本地库看一眼,我们看有。git目录,表明下下来的就已经初始化好了
而且在当前目录下也创建好了push和fetch的别名:
一共有三个效果:
在clone test文件夹里面可以添加到本地库,但是无法添加到远程库,在push之后,会要求你输入账号和密码,如果用其他人的身份登录是会报错的403 拒绝访问。
通过点击仓库下settings manage access和add people就可以完成
然后对方会收到邮件,如果同意之后再推送就可以对文件进行修改,就有写的权限了
在控制面板中可以删除对应的session,那么下次push 的时候就可以重新登陆
pull 操作相当于fetch+merge操作
我们修改一下本地文件,加了一行,记得add以及commit
先演示一下fetch 的效果,记得后面带分支名,
然后我们再看发现没有任何变化:
但是如果我们切换分支就会有:
我们查看一下:
发现还是有多出的这一行,但是这是没有保存的,我们看一下对应本地库的情况
我们就发现,他这里只是commit了一次我们穿梭回去的话肯定没有第二行的。
分成两步的好处就是我们可以下先看看下下来的东西有什么区别再决定mer不merge
比如我们这里切回去merge一下
没什么用,因为本地库的时间戳更加后面,因此不会对本地库做出任何修改
当然上面的步骤用pull就可以搞定,但是我懒得再去注册一个账号……因此就这样吧
比如作者A修改了本地库
然后B修改了本地库另一个分支并且推送到远程库
然后A希望push,就会出现冲突
这个时候的处理方式就是跟之前分支冲突的处理方式一模一样。只要进去文件然后删除特殊符号然后修改文件为需要的样子,最后commit注意不要带文件名就可以解决问题。
最后再推送push一次就可以了。
如果希望让组外的人参与开发工作,可以fork一份远程库,然后让对方在远程库上修改,修改完后发起push request,如果没问题再merge。
比如我随便访问一个别人的项目,用fork一下下
那我们自己的项目里面就有了这个项目:
打开会有这种说明:
我们克隆到本地
然后我们本地修改,再用push推送到远程
然后发现两者一样的因此不能提交:
如果有什么区别就按着顺序写然后提交就可以了。
对方会收到你的push请求,然后可以查看代码的差异,如果没问题就会merge
跟SVN一样,以中央仓库作为项目所有修改的单点实体,所有的修改都提交到master分支上面,简单说就是不分支,每个人都有自己的本地库,用的比较少一些
最主要的工作流,主干分支master
开发分支develop
修复分支hotfix
预发布分支release
功能分支feature
GitFlow 有独立的分支,让发布迭代过程更流畅。
在 GitFlow 基础上, 充分利用了 Git 的 Fork 和 pull request 的功能以达到代码审核的目的。
安全可靠地管理大团队的开发者