Git-Logo-2Color.PNG
什么是 Git
版本管理
分支管理
代码审查
同步协作
Git 基本操作
项目初始化
- Git init
- # 初始化本地仓库
项目签名
- Git config [--global] user.name "wm"
- # 设置配置信息 提交用户的名称 wm,--global 表示全局设置
- Git config [--global] user.email 15804854160@163.com
- # 设置配置信息 提交用户的邮箱
暂存标记
Git add < 文件名 >
# 添加暂存标记
提交暂存
Git commit [-m < 备注信息 >]
# 将暂存标记的文件上传到本地的仓库
版本回退
- Git reset [--hard] HEAD^
- # 深度回退到上一个版本
- #--hard 表示深度回退, 意思是彻底的将所有文件更改为上一个版本, 如果不加表示只是将最新版本的标记移动到上一个版本不做文件的修改
- #HEAD 表示指向最新版本的常量,^ 表示退一个版本,~n 表示回退 n 个版本
版本跳跃
- Git reset [--hard] id
- # 回退到指定 id 的版本, 获取 id:`$git reflog` 第一个字段
获取版本 id
- Git reflog
- # 获取所有历史操作的版本 id
版本还原
Git checkout -- < 文件名 >
- # 还原指定的文件为最后一次提交的版本
- Git reset --herd HEAD
- # 将所有文件还原为最后一次提交的版本
信息查询
- Git status
- # 查看项目文件状态
- Git log
- # 查看版本信息
- Git reflog
- # 查看历史版本
Git 分支管理
创建分支
Git branch < 分支名 >
# 创建指定的分支, 默认为 master 分支
选择分支
Git checkout < 分支名 >
- #-b 创建并进入
- # 选择指定的分支名
查看所有分支
- Git branch -v
- # 查看所有的分支
合并分支
Git merge < 分支名 >
- #--no-ff 携带历史提交记录
- #-m 备注
- # 将指定的分支, 合并到当前的分支
- # 注意处理冲突问题
- # 需要确定合并内容, 并且提交才算完成
检查文件变更
- Git diff
- # 必须在合并冲突时使用
远程 GitHub
添加远程仓库连接
Git remote add < 自定义远程连接名 > < 远程地址 >
- #Git remote add orgin https://xxxx
- # 添加一个名字为 orgin 的远程仓库地址, orgin 可以是其他的名字
推送到远程仓库
Git push < 自定义远程连接名 > < 分支名称 >
- #Git push orgin master
- # 推送 master 分支到 orgin 仓库的 master 并自动合并
- # 注意: 其他用户推送时需要在仓库的主人那里添加伙伴, 不然报 403 错误
同步到本地仓库
Git pull < 自定义远程连接名 > < 分支名称 >
- #Git pull orgin master
- # 将远程仓储的 master 分支同步到本地并且合并到当前分支
克隆远程仓库到本地
Git clone < 远程地址 > [本地路径]
- # 完整的将远程地址的仓库复制到本地路径
- #clone 与 pull 的区别在于一个是单纯的复制, 另一个是复制加合并
常见问题
分支合并冲突
使用 Git merge debug 合并 debug 分支后需要手动修改冲突的文件, 然后在 push.
协助冲突
如果 A 与 B 修改了相同的文件相同的行, 并且 A 先 push, 这时如果 B 在 A 之后 push,Git 就会报一个错误: 版本不匹配, 这时 B 必须先 pull 下并且与本地的代码分支合并, 然后在 push.
push,pull 提交去除密码输入
使用 SSH 进行操作可以不用在 push,pull 输入密码
步骤如下:
一, 生成 SSH key 文件
- # 打开 Git bash here
- cd
- # 切换当前目录为系统的 user
SSH-keygen -t rsa -C <Git 用户名或邮箱 >
- #SSH 生成器 -t < 加密类型 > -C < 备注 >
- # 打开. pub 公钥文件将内容添加的账号的设置
Git 工作流. PNG
欢迎大家的观看, 如果文章对你有帮助请三连一波谢谢, 如果想看更多有关于技术文章, 可以关注一下.
BYBY
来源: http://www.jianshu.com/p/033ef3acaeac