Git 分布式版本控制
git本地区结构
工作区 写代码的 -> git add 暂存区 临时存储的代码-> git commit 本地区 历史版本
Git和代码托管中心
局域网 搭建gitlab
外网环境 github 码云
代码托管中心的任务 维护远程中心代码
团队的人相互协调
团队的外的人 fork复制远程库 修改远程库 发起请求,经过审核后,原来的远程库接受信息。这些操作在github完成。
本地库初始化
git init初始化一个本地仓库,创建一个.git目录 隐藏目录
设置签名 形式 (姓名 email地址);作用区分开发人员的身份
项目级别 仅在当前本地库范围有效
系统级别
级别优先级 就近原则 项目级别优于系统级别
项目级别/仓库级别:仅在当前仓库范围内有效
git config user.name 用户名
git config user.email 邮箱(格式为xxx@hhh)
系统用户级别,登录用户范围内都有效。
git config - -global user.name 用户名
git config - -global user.email 邮箱(格式为xxx@hhh)
会生成.git config文件,签名文件。
查看状态
git status
git add file 放到暂存区
git commit file放到本地区
git commit -m “str” file不进入vi编辑器
git log查看历史版本
git log –pretty=online
git log –online
git reflog 可以显示指针移动的次数
返回到以前的版本 用指针HEAD移动
基础索引值操作 基础^/~操作
索引值
git reset --hard 索引值,哈希函数的值,复制前面的部分就能起到作用,回到历史版本
删除文件后找回
回到以前的版本
添加到暂存区后删除 git reset --hard HEAD指针位置
比较文件差异
git diff file
git diff HEAD file 和历史版本比较
分支操作
git branch -v查看分支
git branch name新建分支
git checkout name切换分支
合并分支,更新内容
git merge branch_name
分支合并冲突,解决方案,冲突解决时,提交不能带文件名。
与远程库交互
github账户
远程库 github上
在本地创建远程库别名
git remote -v
git remote add 别名 远程库地址
推送 上传远程库
git push 别名 分支名字
克隆操作
git clone 远程库地址 这个无需初始化一个仓库,只需要一个空的文件夹
邀请外部人员加入团队
抓取远程库 pull=fetch+merge
git fetch 远程地址 远程分支 抓取
git merge 远程地址 远程分支 修改
git pull 远程地址 远程分支
提交到远程库时冲突
1 pull远程库最新版 2 编辑冲突 3 按照分支冲突时操作。
跨团队操作
团队 ->fork 另一团队 在github上操作
另一个团队 pull request ->团队 也在github上操作
SSH免密操作 只能设置一个账号设置。
myeclipse
team git插件
configuration 设置全局签名
对工程初始化为本地库 工程右键 team share project git
提交时 可以调出navigator窗口查看项目的全部文件。
工程项目文件 右键 team 提交
忽略eclipse管理工程的特定文件。
配置忽略文件
放在.gitconfig同级目录 ,新建一个文件,装忽略文件,然后在gitconfig设置文件的目录,在eclipse读取。
git工作流
集中式 SVN
gitflow 分支流
forking 跨团队
centos
gitlab安装