美文网首页
git 常用命令

git 常用命令

作者: 热兔 | 来源:发表于2024-04-07 09:03 被阅读0次

    Git 分支

    git branch     # 列出所有分支,显示"*"表示该分支为当前所在分支
    git branch "新分支名"    # 新建分支,命名不可以使用特殊符号,新建分支和原分支一样
    git branch -d "分支名"    # 删除分支,不允许删除当前所在的分支
    git barach -m "旧名" "新名"    # 修改分支名
    # 切换分支前必须将工作区的文件提交到仓库(add和commit),否则无法切换到其他分支,报错.
    # 因为没有commit的文件切换分支之后会被覆盖,所以git未提交切换分支会报错提示。
    git checkout "分支名"    # 切换到指定分支,工作区切换.
    git checkout -f "分支名"    # 强制切换到指定分支,当前工作区有未提交的变更会直接丢弃.
    

    Git 合并分支

    git checkout master    # 切换到master分支
    git merge "<分支名>"    # 将指定分支合并到当前分支
    git diff --name-only --diff-filter=U    # 查看产生冲突的文件
    # 一般会有很多文件冲突,vim 进入冲突文件,冲突文件会有标识
    # 决定怎么解决冲突,把标识指针删除,留下要保存的代码,再add,commit,即可
    

    Git 日志

    log命令用于查看git的提交历史,实现版本回滚等操作
    git log    # 查看提交所有的历史记录
    git log -<number>    # 查看最近的几次提交记录
    git log -p -<number>   # 查看最近几次或所有的提交变更,也就是每次提交的差异
    git log --autor <user> -<number>   # 查看具体某个作者的所有提交或最大的几次提交
    git log --oneline    # 只显示提交的id和描述,输出简要信息
    git log --graph    # 人性化显示分支和提交历史,适用于版本回滚的时候查看历史记录
    git log --help 
    

    日志输出含义

        commit 唯一ID
        提交作者和邮箱概要信息
        提交时间
        提交commit,-m写的描述,-m一定不能随便写,写清楚这次提交的内容,方便版本回滚。
    

    Git 差异

    diff --> difference,用于比较差异。适用于:解决冲突,制作补丁
    git diff    # 对比当前工作区和暂存区同文件的差异
    git diff --cached 或 --staged    # 对比暂存区同文件的差异
    git diff HEAD # 对比当前分支
    git diff "指定分支名"    # 查看当前分支和指定分支的差异
    git diff "分支名1" "分支名2"   # 查看两个分支的差异,针对以提交的文件
    git diff "文件名"    # 查看指定文件的差异
    git diff "commit id1" "commit id2"    # 通过log查找出提交的id,然后列出两次提交的差异
    git diff --stat    # 只查看那些文件有变更,不看详细信息
    
    # 对比输出含义
        index 忽略
        --- 变更前的文件
        +++ 变更后的文件
        @@ 从变更前的文件的第几行,和变更后的文件的几行,这块文件区域有差异
        输出具体差异
    
    更改提交
    将不必要的文件add到暂存区
    上次提交觉得是错的
    不想改变暂存区内容,指向调整提交的信息
    版本回滚
    # HEAD指针的意思,指向哪个分支和版本
    git reset HEAD "文件名"    # 移除暂存区的指定文件,就是取消某个文件的add
    git reset --soft HEAD^    # 撤销上次提交,该文件回到暂存区
    git reset HEAD^    # 撤销上次提交,文件只在工作区
    
    git reset --soft    # 只是将HEAD引用指向指定的提交,工作区根暂存区的内容不会改变
    git reset --mixed   # 默认选项,将HEAD指向指定的提交,暂存区的内容随之改变,工作区内容不变
    git reset --hard    # 将HEAD指向指定的提交,暂存区跟工作区都会改变,版本回滚
        git reset --hard HEAD^    # 回滚到上次提交,暂存区和工作区都会改变
        git reset --hard "<commit id>"    #回滚到指定的版本,复制提交的唯一ID
    

    Git 标签

    给每次提交添加一个标识,一般用于标识版本,开发到每个版本用tag添加标签,后续show标签来查看那次提交的详细信息
    标签和commit挂钩,只要该条提交commit存在于多个分支,那么多个分支都可以看到这个标签
    git tag    # 显示标签,以字母排序,commit以时间排序
    git tag "标签名"    # 添加标签,默认给最近的一次提交,添加标签
    git tag "标签名" "commit id"    # 指定给哪次commit提交添加标签
    git show "标签名"    # 查看该标签相关的提交的信息
    git tag -d "标签名"    # 删除标签名,不影响那次提交
    git push "远程分支名" "标签名"    # 把指定标签(该标签必须本地已存在,否则推送失败)推送到远程服务器上
    # 删除远程标签的步骤
        1.删除本地标签   git tag -d "标签名"
        2.再删除远程标签    git tag origin :refs/tags/"标签名"
    

    相关文章

      网友评论

          本文标题:git 常用命令

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