GIT常规

1. GIT常规流程

2. 团队协作

原理图

1.1 基础开发流程

  1. 首先创建中央仓库:可以基于 gitHub / codding 来创建。
    http://github.com
    把开发者都列入仓库的开发群组中,这样每一个开发者用自己的gitHub账号,都有权限操作这个仓库了(当然不这样做也可以,所有开发者用统一的一个账号也可以,为了防止不知道是谁提交的,我们需要让每一个客户端在本地的GIT全局配置中,设置和gitHub相同的用户名和邮箱 $ git config --global user.name ‘xxx’ …)

如何给他人开权限:Settings -> Collaborators -> 搜索他人的信息 -> 点击右边的add即可
然后等待对方接收邀请。

  1. 创建客户端本地仓库(一个开发者就是一个单独仓库),还需要让本地的仓库和远程仓库保持关联,这样才可以实现后续的信息同步。

1)mkdir TESK 创建一个文件夹作为本地仓库;
2) cd TESK 进入这个本地仓库;
3)git init 创建本地仓库;
4)git remote add origin 远程git地址 将本地仓库与远程仓库关联到一起;(origin是连接的名称,一般都用这个名字,当然自己可以随便设置)
5)git remote -v 查看连接情况;
6)git remote rm origin 断开连接,再使用 git remote -v 发现什么都没有;
7) git remote update origin 更新连接通道;
注意:上面的步骤可以简化:
有更简单的方式:只要把远程仓库克隆到本地,就相当于创建本地仓库,而且自动建立了链接,并且把远程仓库中的内容也同步到了本地。
$ git clone “远程仓库地址” “本地仓库文件夹名字(不写默认是仓库名字)”
进入克隆下来的目录中,执行 git remote -v 便可发现 本地与远程仓库已经连接好了。

  1. 提交历史版本
    例如 TESTA 项目 新增了文件 1.js(前提是TESTA是clone下来的),我们就需要将它提交生成一个历史版本:

cd TESTA
git add .
git commit -m '创建1.js'
git log 可以查看历史版本信息。

若另一个人开发者,clone了代码,给了一个他自己的版本。

cd TESTB
git add .
git commit -m "我是开发者二,创建了2.js

  1. 各自和中央服务器同步信息
    每一个分支的产生是通过 提交一个历史版本后产生的,开始的时候肯定什么都没有。
    我们在建立一个中央仓库后最好让它自带有mater分支(里面有文件),不要是个空仓库(因为空仓库没有任何分支),这样每个提交者都可以共同操作一个mater。

推送:git push origin master ( 每次PUSH之前最好都PULL一下:如果有冲突在本地处理一下冲突,然后再推送 );
拉取:git pull origin master

注意:在每个成员各自操作各自的文件,而不是去改共同的文件,即不存在代码冲突的时候,我们都是基于上面来处理的。

首次提交出现问题,可先强制提交:git push -u origin master -f

1.2 多分支管理

目前一个团队对于项目一般有两种管理模式:无分支管理模式单独分支管理模式

1.2.1 无分支管理模式

所有人都使用 master 分支,管理代码。
关于基本操作都相同,但我们可能需要处理冲突合并问题。

冲突合并:

  1. 文件有冲突,但不是同一个文件的同一行代码,我们只需将pull下来的代码中它会全部留下来,你需要手动选择你要留的代码,删除掉多余的“描述”,然后push即可。
    在这里插入图片描述
  1. 同一个文件,像同行代码冲突,在 pull 之后会提示你,你只需 ESC :wq Enter 即可,然后提交。
    在这里插入图片描述

其实在大多数情况下,项目用一个主分支就完全足够了。

1.2.2 单独分支管理模式
  1. add提交到暂存区,commit提交到历史区
  2. 分支指的是历史区的峰分支:创建分支就是创建不同的线路,来管理历史版本。例如:我们向 dev 分支提交了一个 历史版本,我们可以将这个版本先提交的 master 主分支上,然会再提交到远程仓库上。
  3. 相当于 将开发的版本 暂存到某一分支上,先不提交到 master 分支上,防止多人大规模开发使 master 过乱,等到我的版本确定后,再提交到 master 分支中,这样就不会乱了。
  4. 其实总的来看,这和只有一个 master分支 没啥区别,只不过管控起来逻辑更加清晰了。
  1. git branch 查看当前存在的分支;
    *master 代表当前在哪个分支上
  2. git branch dev 创建一个叫 dev 的分支(特点:创建分支完成,会把本地的 master 分支中的历史内容同步到 dev 分支上,只有新创建的分支才会这样);
  3. git checkout dev 切换到 dev 分支上;
  4. git checkout -b dev 创建并且切换到这个分支(上面两个命令的和);
  5. git add .git commit -m 'newBranch' 提交到当前分支;
  6. git stash 先暂存本地文件(合并到 master 分支上的第一步,然后先切到 master 分支上,再合并);
  7. git checkout master 切换回master上再进行提交;
  8. git stash pop 还原暂时存储的内容;
  9. git merge dev 当前在 master 分支上,我们将 dev 与 master 两个分支进行合并(把谁合并到我在的分支上);
  10. git pull origin master 要推到远程地址上,先拉下来;
  11. git push origin master:提交到远程仓库中(远程的仓库中并没有同步到当前的分支 dev);
  12. git branch -D xxx 删除分支;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值