👉你可以通过以下命令查看所有的配置以及它们所在的文件
git config --list --show-origin
👉设置用户名和邮件地址
git config --global user.name “”
git config --global user.email
👉让 Git 显示颜色,会让命令输出看起来更醒目
git config --global color.ui true
👉配置别名
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.unstage ‘reset HEAD’ 把暂存区的修改撤销掉(unstage),重新放回工作区。
git config --global alias.last ‘log -1’ 显示最近一次的提交
git diff 文件路径 查看修改后对比
👉日志及回滚操作
git log --pretty=oneline 简要查看commit快照
git reset --hard HEAD^ 上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100
git reflog 回滚后之前的提交找不到使用
git push -f origin <branch_name> 本地回滚后远程与本地同步回滚
git push --force
👉修正提交及撤销文件
git commit --amend 提交修正
git checkout – 撤销工作区修改的文件 git checkout其实是用版本库里的版本替换工作区的版本
git reset HEAD 取消暂存区的修改
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD ,就回到了场景1,第二步按场景1操作
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,可以用命令git reset --hard commit_id,不过前提是没有推送到远程库
👉创建分支
git checkout -b dev (创建并切换分支) = git branch dev && git checkout dev 创建并切换分支
git switch -c dev (新版本创建并切换分支 目的:为了区别撤销修改命令 checkout)
git branch 命令查看当前分支
👉合并分支
git merge 命令用于合并指定分支到当前分支。
👉删除分支
git branch -d <branch_name>
👉禁止快进合并
git merge --no-ff -m “merge with no-ff” dev
👉多分支的代码库,将代码从一个分支转移到另一个分支
这时分两种情况。
一种情况是,你需要另一个分支的所有代码变动,那么就采用合并git merge。
另一种情况是,你只需要部分代码变动(某几个提交),这时可以采用 Cherry pick。
git cherry-pick 将某次提交合并到当前分支
git cherry-pick <branch_name> 将某分支的最新提交合并到当前分支
git cherry-pick 多次提交合并到当前分支
git cherry-pick A…B 将A之后到B的提交合并到当前分支
git cherry-pick A^…B 将A-B的所有提交合并到当前分支
git cherry-pick命令的常用配置项如下。
👉 cherry-pick 配置
-e,–edit
打开外部编辑器,编辑提交信息。
-n,–no-commit
只更新工作区和暂存区,不产生新的提交。
-x
在提交信息的末尾追加一行cherry picked from commit …,方便以后查到这个提交是如何产生的。
-s,–signoff
在提交信息的末尾追加一行操作者的签名,表示是谁进行了这个操作。
-m parent-number,–mainline parent-number
如果原始提交是一个合并节点,来自于两个分支的合并,那么 Cherry pick 默认将失败,因为它不知道应该采用哪个分支的代码变动。
-m配置项告诉 Git,应该采用哪个分支的变动。它的参数parent-number是一个从1开始的整数,代表原始提交的父分支编号。
$ git cherry-pick -m 1
上面命令表示,Cherry pick 采用提交commitHash来自编号1的父分支的变动。
一般来说,1号父分支是接受变动的分支,2号父分支是作为变动来源的分支。
👉本地分支落后远程分支拉取代码整理分支可读性(变基rebase)
git pull --rebase = git pull && git rebase 当本地分支提交落后远程分支时,为了整理分支的可读性,进行分支提交整理
👉标签
作用:为了方便版本管理时打上标签可以快速对应
注意点:标签与commit相关,多个分支下共有相同的并且commit上拥有标签,那么该commit的所有分支都拥有该标签
git tag 查看所有标签
git tag 在当前提交设置一个标签
git tag 给历史提交设置一个标签
git show 查看标签信息
git tag -a -m “” 给标签增加描述 【-a:指定标签名】【-m:指定说明的描述】【参数-a 换 -s 可以创建一个带 gpg 签名的标签】
👉标签删除及推送操作
git tag -d 删除本地标签
git push origin 推送标签到远程
git push origin --tags 推送本地所有未推送的标签到远程
删除已推送的标签,需要先删除本地标签
1、git tag -d <loacl_tag_name>
2、git push orgin :/refs/tags/