git 常用命令

2024-04-07  本文已影响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/"标签名"
上一篇下一篇

猜你喜欢

热点阅读