【 Git 操作 】

廖雪峰大神 Git 教程
Git-flow 包教不包会
阮一峰-常用 Git 命令清单
1、Git 简介
1.1 Git 是什么
目前世界上最先进的分布式版本控制系统
1.2 版本控制
链接
1.3 集中式 vs 分布式
• 集中式版本控制工具:
CVS、SVN、VSS、…
• 分布式版本控制工具:
Git、Mercurial、Bazaar、Darcs、…
1.4 Git 简史
1.5 Git 工作区、暂存区、版本库
工作区:写代码 --> git add --> 暂存区 --> git commit --> 版本库
1.6 Git和他的好基友(GitHub、Gitee、GitLab)
git 版本控制工具
github、gitee、gitlab 远程的代码托管平台
gitlab 一般是公司内部通过这玩意去在公司内部搭建一个代码托管平台。
1.7 GIt 安装
官网下载地址
国内淘宝镜像下载地址
2. Git 命令行操作
zhangsan 项目老大
lisi 项目新成员
2.1 本地库初始化

  1. git init
    会生成一个 .git 隐藏文件夹,不要对这个文件夹进行操作,不然本地库就坏了。
    如果我们想要把一个项目的版本库给去掉从新初始化的时候,就直接删除这个 .git 文件夹。重新 git init 操作
    2.2 配置用户信息 !!!!
    问题:提交代码时会出现下面的问题
    原因:没有配置用户信息
    配置作用:区分不同开发人员的身份
    配置方式:
    a. 项目级别/仓库级别
    git config user.name “你的名字”
    git config user.email “你的邮箱”

配置信息在当前项目的 .git/config 文件中

b. 系统用户级别
git config --global user.name “你的名字”
git config --global user.email “你的邮箱”

配置信息存放在 系统的用户目录下 C:\Users<当前系统的用户名> .gitconfig 文件

优先级:项目级别 > 系统级别
2.3 基本命令操作

  1. 状态查看 git status
  2. 添加
    git add
    将单个文件添加到暂存区
    git add .
    将当前目录下所有修改或新增的文件全部添加到暂存区
  3. 提交
    git commit
    回车之后会进入到 vim 编辑器中,需要输入这次提交的日志
    git commit -m “这次提交的日志”
    回车之后直接提交了,不会进入 vim 中
  4. 查看历史记录
    git log
    列出从当前版本为止全部的提交日志,
    如果一屏展示不下,可以使用键盘操作翻页。这时使用 Ctrl + C 退出不了。可以使用 q 来退出
    git log --pretty=oneline
    以一行的方式来列出
    git log --oneline
    以一行的方式来列出,commitId 比上一个更简短
    git log -
    列出最近的 num 条提交日志
    git reflog
    列出最近git的所有相关操作日志。版本前进时可以参考
  5. 版本回退与前进
    版本回退的本质:
    就是一个 HEAD 指针的操作
    基于Commit Id操作 (推荐)
    git reset --hard
    使用 ^ 符号操作
    git reset --hard HEAD^ 回退到当前版本的上一个版本
    只能回退
    使用 ~ 符号操作
    git reset --hard HEAD~ 回退到当前版本的上 num 个版本
    只能回退
  6. 撤销修改
    工作区的修改: git checkout –
    暂存区的修改:
    1 git reset HEAD 撤销暂存区的修改
    2 git checkout – 撤销工作区的修改
    工作区的新增: 直接删除新增的文件即可
  7. 删除文件并找回
    找回文件有个前提条件:要找回的文件以及被git管理起来了
    使用版本回退相关的处理
    2.4 分支管理
  8. 什么是分支
    在版本控制过程中,使用多条线同时推进多个任务。
  9. 分支的好处
    同时并行推进多个功能迭代,提高开发效率
    并行的多个分支之间不会互相冲突
  10. 查看分支
    查看本地仓库的分支情况
    git branch
    查看远程仓库的分支情况
    git branch -r
    查看本地与远程的所有分支情况
    git branch -a
  11. 创建分支
    git branch <分支名字> 只是创建分支
    git checkout -b <分支名字> 创建分支,并切换到新创建的这个分支上
  12. 切换分支
    git checkout <分支名字>
    注意:本地如果不存在这个分支,则会把远程的给弄下来,如果远程也没有,就报错
  13. 合并分支
    先切换被合并的分支上。
    使用 git merge <需要合并的分支>
  14. 合并时解决冲突
    原因:两个分支在同一个代码上的某一个位置做了修改,这些 git 合并时不知道该听那个分支的。
    1 找到有冲突的文件
    2 删除这个文件中的特殊标记
    3 找到相应的开发人员去商量到底如何处理这个情况,用你的,还是用我的,或者两个都保留
    4 git add
    5 git commit
  15. 删除分支
    git branch -d <分支名字> 以及合并过的分支可以这样去删除
    git branch -D <分支名字> 没有合并过的分支,但是里面有代码修改,使用 -d 删除,是删除不了的。确定要删除,就是用 -D
    2.5 远程库(使用代码托管平台)
    三个人
    张三 (项目经理)
    qf-zhangsan@yopmail.com
    李四 (普通开发人员)
    qf-lisi@yopmail.com
    王五 (普通开发人员)
    qf-wangwu@yopmail.com
  16. 创建远程库
  17. 远程库与本地库关联
    https
    ssh
    git remote add <远程连接别名,一般默认使用origin> <远程仓库的https地址或ssh地址>
  18. 查看本地库与远程库的关联信息
    git remote -v
  19. 克隆远程库
    李四加入到张三的公司,李四需要将Apple项目克隆到本地
    张三给李四一个远程仓库的地址
    李四使用 git clone <远程仓库的地址> 克隆项目到本地
  20. 推送 push
    李四已经克隆了代码,张三让李四做一个登陆的功能。
    不要直接在master上写代码,询问张三(老大)我基于那个分支做开发。
    一个功能一天做不完,也需要每天下班之前提交推送一下。(有些公司老大要看看工作饱和度)
    推送时权限错误:
    需要加入到项目
  21. 抓取 fetch
    git fetch <远程仓库连接别名> <远程仓库的分支名>
  22. 合并 merge
    处理问题之后,做merge
  23. 拉取 pull
    pull = fetch + merge
    2.6 团队间协作开发
    2.7 跨团队协作开发
    一、对某个开源代码感兴趣
    1 将这个开源的项目 fork 一份到我的远程仓库
    2 clone 我 fork 的这个项目到本地
    3 写好代码推送到自己的远程
    4 创建 pull request
    2.8 ssh免登录
    1 需要先查看本地电脑是否有 ssh 相关的东西 (用户目录下是否有 .ssh 的文件夹)。有就先删除吧。
    2 创建 ssh key
    ssh-keygen -t rsa -C “邮箱地址”
    3 接着在 用户目录下找到 .ssh 文件夹中的 id_rsa.pub 这个文件
    4 复制 id_rsa.pub 中的内容
    5 去远程托管平台上添加 ssh
    1 这时克隆项目时就可以直接选择使用 ssh 的方式
    2 先将本地的https的连接方式给删除,换成 ssh 的连接方式
  24. Git 工作流
    1 集中式 大家全部都在一个分支上写代码master
    2 git flow 不同分支用来干不同的操作
    3 forking fork pull request 这套操作
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值