Git
分布式版本控制系统,用于管理随时间变化的数据
常用命令
$ git init # 初始化仓库 $ git status # 查看仓库状态 $ git add -A # 添加暂存区 $ git commit -m 'message' # 提交本地版本库 $ git log # 查看提交日志 $ git branch # 查看分支 $ git checkout -b <branch-name> # 创建并切换到新分支 $ git push # 将本地仓库推送到远程中央仓库中 $ git clone # 将远程中央仓库的源代码克隆(下载)到本地 $ git pull # 将远程中央仓库的最新源代码拉取(更新)到本地
团队协作
项目经理
搭建项目结构,创建远程中央仓库
-
创建项目目录,搭建项目基础结构
-
初始化本地仓库,添加
README.md
、.gitignore
等文件 -
提交本地版本库
$ git add -A $ git commit -m 'flag: message'
-
创建空白的远程中央仓库
-
将本地仓库与远程中央仓库关联,并推送本地版本库到远程中央仓库中
$ git remote add origin git@gitee.com:mobiletrain/h52107-git-test.git $ git push origin master
-
进行远程中央仓库管理,添加项目开发成员
仓库-->管理-->仓库成员管理-->开发者--> 添加仓库成员-->邀请用户-->通过链接邀请/直接添加/通过已有仓库添加
-
基于 master 分支,创建 dev 分支,以后各开发成员的开发代码向 dev 分支中进行合并,master 分支的代码应该放置的是最稳定的版本
开发者
-
将远程中央仓库代码克隆到本地
$ git clone <repo.url>
-
基于 dev 分支创建自己的开发分支
$ git checkout -b <branch-name>
-
在工作空间中实现编码开发,在完成功能并通过测试后,提交本地版本库
$ git add -A $ git commit -m 'flag: message'
-
推送到远程中央仓库自己的分支中
$ git push origin <branch>
-
在远程中央仓库中,提交 Pull Request (PR,合并请求),请求将自己的分支代码合并到 dev 分支中。
-
如果提示的是绿色的 “ 可自动合并”,则说明源分支与目标分支之间不存在冲突,可实现自动合并。
-
如果提示的是红色的 “不可自动合并”,则说明源分支与目标分支之间存在代码冲突情况,需要解决冲突:
冲突发生的原因是在提交 pull request 之前,有其它同事已经合并了分支,而自己并不知道,所以可能操作了其他同事也操作过的文件。
解决冲突方案:
-
切换回 dev 分支,将 dev 分支最新的版本更新到本地
$ git checkout dev $ git pull origin dev
-
切换回自己的开发分支,变基
$ git checkout <branch> $ git rebase dev
-
如果在变基过程中,分支名后出现类似
|REBASE 1/1
的情况,则说明不能自动处理变基过程中的冲突,需要手动解决冲突,可使用git status
查看未解决冲突的文件 -
如果冲突手动解决完毕,则执行
git add
将资源添加到暂存区:
$ git add -A
-
继续变基
$ git rebase --continue
-
如果在继续变基过程中进入
vim
编辑器界面,可以按Esc
后输入:wq
退出编辑界面。 -
如果还有冲突,则继续解决冲突,如果所有冲突解决完毕,则推送本地代码到远程仓库。
$ git push origin <branch>
-