主要介绍git的基本使用
1.Git的介绍
-
git: 先进的分布式版本控制工具
-
版本控制作用:
- 对代码进行备份(存档)
- 有利于团队协作开发(云盘)
-
安装git :sudo apt-get install git
-
集中式版本控制工具和分布式版本控制工具
2.Git本地结构
-
创建本地仓库 git init
- (推荐直接git clone项目下来)
-
设置仓库的作者信息
- it config user.name haifeng
- git config user.email haifeng_1024@163.com
-
全局设置作者信息(仓库默认使用)
- git config user.name --global
-
工作区:对于添加、修改、删除文件的操作,都发生在工作区中
-
暂存区:暂存区指将工作区中的操作完成小阶段的存储 是版本库的一部分
-
仓库区:仓库区表示个人开发的小阶段的完成
- 仓库区中记录的各版本是可以查看并回退
- 但是在暂存区的版本一旦提交就再也没有了
3.图解git本地结构
5.git基本操作-重点
- 查看本地仓库状态 git status
- 将工作区内容提交到暂存区
- git add 文件名 将工作区指定文件提交
- git add . 将工作区的所有数据全部提交
- 将暂存区的内容提交到仓库区 git commit -m “注释”
- 查看仓库当前的版本 git log
6.撤销修改和切换版本
-
6.1 撤销修改
- 根据暂存区到还原工作区 git checkout 文件名
- 根据仓库区还原暂存区 git reset HEAD
-
6.2 切换版本
- HEAD 表示当前版本
- HEAD^ 表示上一个版本
- HEAD~100 表示前100个版本
- 切换到上一个版本(还会根据仓库区还原暂存区) git reset HEAD^
- 切换到指定版本(版本号前七位) git reset 版本号前七位(git log 可以查看版本)
- 查看历史操作(也可以看到版本号) git reflog
7.删除文件
- 7.1 删除文件
- 删除工作区和暂存区的文件 git rm 文件名
- 7.2恢复误删
- 如果已经提交版本 先切换到上一个版本 git reset HEAD^ 再还原工作区 git checkout 文件名
- 如果还没有提交新版本,先还原暂存区 git reset HEAD 再还原工作区 git checkout 文件名
- 7.3拓展命令
- 只删除暂存区文件 git rm 文件名 --cached
- 还原仓库区和暂存区(默认) git reset HEAD^ --mixed
- 只还原仓库区 git reset HEAD^ --soft
- 还原仓库区& 暂存区& 工作区 git reset HEAD^ --hard
8. Git远程管理
-
8.1.创建远程仓库
- 代码托管网站 大部分都支持git
- 如 github.com gitee.com (国内的码云)
-
8.2 git 远程操作–重点
- 克隆远程仓库(下载项目代码, 并且包含本地仓库) git clone git地址
- 推送本地版本到远程仓库 git push
- 拉取远程版本到本地仓库 git pull
- 记录密码 git config --global credential.helper store
- 8.3 代码冲突
- 原因: 本地仓库缺少远程仓库中的某个版本
- 如果本地缺少远程仓库中的某个版本, 则无法推送本地版本到远程仓库
- 解决办法:
- 先拉取远程版本 git pull
- git 会尝试自动合并代码
- 如果修改的不是同一个文件, 会自动合并成功, 这时生成新版本git commit后, 就可以推送到远程仓库git push
- 如果修改的是同一个文件, 会自动合并失败, 这时就需要手动合并代码(需要和同事沟通合并结果), 合并后再生成新版本git commit后, 就可以推送到远程仓库git push
- 如何避免代码冲突
- 尽量不要多人修改同一个文件
- 不要擅自修改别人的代码
- 多提交代码, 多拉取代码
9.标签
- 作用:给 重要的版本 进行标记,方便快速查询和切换指定的版本
- 项目经理:
- 给重要的版本打标签: git tag -a v1.0 -m “1.0版本” 版本号
- 将标签推送到远程仓库 git push origin v1.0
- 开发人员
- 先拉取远程版本 git pull
- 查看所有标签 git tag
- 查看标签对应的版本 git show v1.0
- 切换到对应的版本 git reset 版本
10.分支
- 作用:隔离开发环境, 主分支上只保留稳定版本, 真实的开发过程放在开发分支上
- 分支效果: 相当于对原仓库进行完整的拷贝
- 查看所有分支 git branch
- 项目经理
- 创建分支 git branch dev(分支名)
- 推送分支到远程仓库 git push origin dev -u
- 将稳定版本合并到主分支
- 先拉取远程版本 git pull
- 再切换到主分支 git checkout master
- 合并分支 git merge dev
- 开发人员
- 先拉取远程版本 git pull
- 切换到开发分支 git checkout dev
- 在开发分支中进行开发
- 综合图解
- 补充非常非常重要的部分:
- 作者是 Linux 之父:Linus Benedict Torvalds
- 当初开发 Git 仅仅是为了辅助 Linux 内核的开发(管理源代码)