美文网首页
git 常用指令

git 常用指令

作者: nnlrl | 来源:发表于2020-09-03 22:59 被阅读0次

    GIT

    GIT简介

    1. 什么是git: git是一个开源到分布式版本控制系统, 用于高效的管理各种大小项目和文件

    2. 代码管理工具的用途

    • 防止代码丢失, 做备份
    • 项目的版本管理和控制, 可以通过设置节点进行跳转
    • 建立各自的开发环境分支, 互不影响, 方便合并
    • 在多终端开发时, 方便代码的相互传输
    1. git的特点
    • git是开源的, 多在linux下使用, 可以管理各种文件
    • git是分布式的项目管理工具(svn是集中式的)
    • git的数据管理更多样化, 分享速度快, 数据安全
    • git拥有更好的分支支持, 方便多人协调

    GIT使用

    基本概念

    • 工作区: 项目所在操作目录, 实际操作项目的区域
    • 暂存区: 用于记录工作区的工作内容
    • 仓库区: 用于备份工作区的的内容
    • 远程仓库: 远程主机上的git仓库

    注意: 在本地仓库中, git总是希望工作区的内容和仓库区保持一致, 而且只有仓库区的内容才能和其他远程仓库交互

    初始设置

    配置命令: git config 
    
    配置所有用户: git config --system [选项]
    - 配置文件位置: /etc/gitconfig
    
    配置当前用户: git config --global [选项]
    - 配置文件位置: ~/.gitconfig
    
    配置当前项目: git config [选项]
    - 配置文件位置: project/.git/config
    
    # 配置用户名
    sudo git config --system user.name xxxx
    
    # 配置用户邮箱
    git config --global user.email xxxx@xxxx.com
    

    基本命令

    1. 初始化仓库

    git init
    意义: 将某个项目目录变为git操作目录, 生成git本地仓库, 该项目可以使用git管理

    1. 查看仓库本地状态

    git status
    说明: 初始化仓库后默认工作在master分支, 当工作区与仓库区不一致的时候会有提示

    1. 将工作区记录到暂存区

    git add [files]
    说明: 将修改过的文件(与仓库区不同)进行记录, 放入暂存区

    1. 撤销暂存记录

    git rm --cached [files]
    说明: 将暂存区的文件删除以取消暂存

    扩展延申

    在git项目中可以通过项目的某个文件夹下定义.gitignore文件的方式, 规定相应的忽略规则, 用来管理当前文件夹下的文件的git提交行为, .gitignore文件是可以提交到共有仓库中, 这就为该项目下的所有开发者都共享一套定义好的忽略规则, 在.gitignore中, 遵循响应的法则, 在每一行指定一个忽略规则

    .gitignore忽略规则

    • file: 表示需要忽略的文件
    • *.a: 表示所有以.a结尾的文件
    • !lib.a: 表示但lib.a除外
    • build/: 表示忽略build/目录下的所有文件, 过滤整个文件夹
    1. 将文件同步到本地仓库

    git commit [file] -m [message]
    说明: message表示添加一些同步信息, 表达同步内容

    1. 查看commit日志记录

    git log
    git log --pretty=oneline

    1. 比较工作区文件和仓库文件差异

    git diff [file]

    1. 将暂存区文件或者某个commit节点文件恢复到工作区

    git checkout [commit] --[file]
    说明: 为了防止误操作, checkout还有切换分支的作用

    1. 移动或删除文件

    git mv [file] [path]
    git rm [files]
    注意: 这两个操作会修改工作区内容, 同时将操作记录提交到暂存区

    版本控制

    1. 退回上一个commit节点

    git reset --hard HEAD^
    说明: 一个^表示退回一个版本, 以此类推, 当版本回退之后工作区会自动和当前commit保持一致

    1. 退回到指定的commit节点

    git reset --hard [commit_id]

    1. 查看所有操作记录

    git reflog
    注意: 最上面的为最新记录, 可以利用commit_id去往任何操作位置

    1. 创建标签

    标签: 在项目中的重要commit位置添加快照, 保存当时的工作状态, 一般用于版本的迭代

    git tag [tag_name] [commit_id] -m [message]
    说明: commit_id可以不写则默认标签表示最新的commit_id位置, message也可以不写, 但是最好添加

    1. 查看标签

    git tag 查看标签列表
    git show [tag_name] 查看标签详细信息

    1. 去往某个标签节点

    git reset --hard [tag_name]

    1. 删除标签

    git tag -d [tag_name]

    保存工作区

    1. 保存工作区内容

    git stash save [message]
    说明: 将工作区未提交的的修改封存, 让工作区回到修改前的状态

    1. 查看工作区列表

    git stash list
    说明: 最新保存的工作区在最上面

    1. 应用某个工作区

    git stash apply [stash@{n}]
    说明: 应用某个暂存方案, 最新保存的工作区在最上面

    1. 删除工作区

    git stash drop [stash@{n}] 删除某一个工作区
    git stash clear 删除所有保存的工作区

    分支管理

    定义: 分支即每个人在原有代码(分支)的基础上建立自己的工作环境, 单独开发, 互不干扰, 完成工作开发后在进行统一分支合并

    1. 查看分支情况

    git branch
    说明: 前面带*的分支表示当前的工作分支

    1. 创建分支

    git branch [branch_name]
    说明: 创建新分支

    1. 合并分支

    git merge [branch_name]
    将其他分支的内容合并到当前分支, 冲突问题是合并分支过程中最为棘手的问题

    当分支合并时, 原分支和发生了变化的分支就会产生冲突, 当合并分支时添加新的模块, 这种冲突可以自动解决, 只需自己决定commit操作即可
    当分支合并时两个分支修改了同一个文件, 则需要手动解决冲突

    1. 删除分支

    git branch -d [branch] 删除分支
    git branch -D [branch] 删除没有被合并的分支

    远程仓库

    远程仓库上的git仓库, 实际上git是分布式结构, 每台主机的git仓库结构类似, 只是把别人主机上的git仓库称为远程仓库

    GitHub简介

    github是一个开源的项目社区网站, 拥有全球最多的开源项目, 开发者可以注册网站在github上建立自己的仓库

    获取项目

    • 在本地使用git clone方法获取远程仓库
    git clone https://github.com/xxxx
    注意: 获取到本地的项目会自动和github远程仓库建立连接, 且获取的项目本身也是git项目
    

    创建删除git仓库

    远程仓库操作命令

    1. 连接远程仓库

    git remote add origin https://github.com/xxxx
    说明: 连接远程仓库, 并命名为origin

    1. 删除远程仓库

    git remote rm origin
    说明: 删除名为origin的远程仓库

    1. 向远程仓库推送

    git push -u origin master
    说明: 将本地master分支推送至远程origin仓库, -u表示第一次使用origin和本地建立连接

    1. 上传标签

    git push origin [tag] 推送本地标签到远程
    git push origin --tag 推送本地所有标签到远程

    1. 推送旧的版本

    git push --force origin 用于本地版本比远程版本旧时强行推送本地版本

    1. 删除远程分支和标签

    git branch -a 查看所有分支
    git push origin [:branch] 删除远程分支
    git push origin --delete tag [tag_name] 删除远程仓库标签

    1. 获取远程代码

    git pull 获取远程分支代码
    git fetch origin master:tmp 将远程分支master拉取到本地, 作为tmp分支
    区别: pull将远程内容直接拉取至本地, 并和对应分支内容进行合并, fetch将远程分支内容拉取到本地, 但是不会和本地对应分支合并, 自己判断后在使用merge合并

    相关文章

      网友评论

          本文标题:git 常用指令

          本文链接:https://www.haomeiwen.com/subject/kkdasktx.html