概要
Git
是一种专为处理文本文件而设计的版本控制系统。
- 允许你通过提交对一个系统(或一组)文件的历史进行注释。这些提交便是在给定时间点对系统做出的差异“快照”。
单机上的文件版本管理可以只用git,但是用多台机器来管理同一个文件的时候,就需要用到github了。
GitHub
是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub
- Github 获取 Git 中的提交历史,并存储在服务器上,因此可以从任一一台电脑访问它。我们可以在本机推送(pushing)提交到 Github,然后,从另一台电脑上拉取(pulling)这些提交。
- 当前的Git 提交历史已推送(push)到了在线Github。一旦被上传到 Github,这些提交记录就被存储在远程仓库(remote repository)中。
几个功能
创建仓库
创建仓库的克隆
git维护仓库运作的工作流
工作目录->暂存区->HEAD
git add < filename >
git add * #将更改提交到暂存区
git commit -m "代码提交信息" # 实际提交改动,改动提交到HEAD
推送改动:将本地仓库的改动提交到远程仓库
git push origin master //master可以替换
添加服务器
git remote add origin < server >
创建合并与分支
标签
日志查询
替换本地改动
应用场景
A:工程团队多人使用git和github的时候,要如何确保他们的工作不会重叠?
B:我们可以创建分支。将 Git 提交历史想像成一棵树。树的主干就是分支。为了让团队成员避免彼此牵扯,他们在独立于他人的隔离区(在一个功能分支)进行工作,最终,每个人的成果都会被提交到主代码库 (主分支)。
A:功能分支与主分支之间的关系?
B:常规工作流始于每个作者为完成一个工作任务(例如编写章节内容,或排版章节)而在主分支上创建分支。只有当更改得到其他合作作家的批准时,分支才会被合并到主分支上(请谨记,主分支上的内容,才是最终要发布的内容)。当一个分支的内容合并(merged)到主分支时,意味着该分支的内容会覆盖主分支上的。因此,现有内容的任何更改都将会替代之前的。当然,任何新添加的内容也会添加到主分支。实际上,当分支合并到主分支时,该分支的提交历史被添加到主分支提交历史的顶部。
经典流程
- 创建本地分支
- 在本地分支上编辑修改,然后提交
- 推送提交(Push)到 Github
- 创建发布请求(Pull Request),说明该分支包含了哪些更改
- 合并(Merge)分支内容到主分支
- 将主分支上的最新提交拉取(pull)到本地
- 重复上述步骤
git查看用户名和修改用户名
查看用户名和邮箱地址:
$ git config user.name
$ git config user.email
修改用户名和邮箱地址
$ git config --global user.name "xxxx"
S git config --global user.email "xxxx"
git分支查看
查看远程分支
$git branch -a
查看本地分支
$git branch
添加新分支
$git checkout -b 新分支名
切换本地分支
$git checkout 分支名
还原代码至某版本
$git reset --hard 版本号 #如果不加版本号,默认恢复上一个版本