git用户信息配置

# 查看用户配置
git config user.name
git config user.email
# 修改用户配置
git config --global user.name "zhangsan(新的用户名)"
git config --global user.email "123456@qq.com(新的邮箱)"
git config --global user.password "123456(新的密码)"

git常用命令

# 初始化为git版本管理
git init
# 将当前所有文件添加到git版本库
git add .
# 添加远程版本库
git remote add origin 你的远程库地址
# 查看远程库地址
git remote -v
# 从工作树和索引(缓存)中删除文件(-rf强制遍历文件夹下所有文件)
git rm [-rf] --cached esmake-web-main/src/test/java/temp

# clone项目到指定目录,默认建立master分支
git clone xxx.git [dir/xxx/xxx]
# clone时创建新的分支替代默认Origin HEAD(master)
git clone -b [new_branch_name]  xxx.git
# 克隆指定tag版本
git clone --branch [tag] [git地址]

# 新建远程分支并切换到现有分支([origin/dev]表示要检出的远程分支)
git branch iss53 和 $ git checkout iss53
# 二合一
git checkout -b iss53 [origin/dev]

# --no-ff 禁止快速合并。会生成一次新的提交记录,这个记录只是标识在这里进行了一次merge操作
# --no-edit 不进行提交信息的编辑。
git merge --no-ff --no-edit xx

# 本地分支重命名
git branch -m 原名称 新名称

# 查看日志
# 单行模式查看提交日志
git log --oneline
# 单行模式查看提交日志,和上面命令区别:该命令会展示完成版本id
git log --pretty=oneline
# 查看最后一次的提交信息
git log -1 HEAD
# 这个 Git 命令将重置 HEAD。但是我们的索引和工作目录不会受到任何影响
git reset --soft <commit_id>
# 重置本地head到上次提交版本
git reset --hard HEAD^
# 重置本地head到指定提交版本
git reset --hard <commit_id>
# 通过git revert是用一次新的commit来回滚之前的commit
git revert <commit_id>  # 撤销指定的版本,撤销也会作为一次提交进行保存
# git revert 和 git reset的区别
# git revert是用一次新的commit来回滚之前的commit,此次提交之前的commit都会被保留;
# git reset是回到某次提交,提交及之前的commit都会被保留,但是此commit id之后的修改都会被删除
# 查看执行过的命令
git reflog
# 提交所有更改的文件到本地库 -a:all,可简写为-am
git commit -a -m 'xxx'
# 提交单个文件 -o:only
git commit -o xx/xx.java -m 'xxx'
# 合并到上一次的commit变更当中
git commit --amend --no-edit
# 比较当前未提交(commit)的版本跟上一个版本之间的差别
git diff xx/xx.java
# 查看远程和本地分支
git branch -a
# 删除本地分支
git branch -d br
# 删除远程分支
git push origin :br
# -f强推
git push origin master [-f]
git pull origin master
# 在实际使用中,git fetch更安全一些,不会自动merge
git fetch origin master
# 列出所有标签
git tag
# 模糊查询标签
git tag -l 'v3.2.*'
# 创建轻量级标签
git tag v3.x.x
# 创建带附注的标签
git tag -a v1.4 -m 'my version 1.4'

# 创建带GPG签署的标签
### git tag -s v1.5 -m 'my signed 1.5 tag'
# 验证已签署的标签
### git tag -v [tag-name]

# 查询特定标签明细
git show v1.4
# 后期加注标签,"9fceb02"为某次提交ID
git tag -a v1.2 9fceb02
# 默认情况下,git push 并不会把标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库
git push origin [tag-name]
# 如果要一次推送所有本地新增的标签上去,可以使用 --tags 选项
git push origin --tags
# 删除远程标签
git push origin --delete tag <tagname>
# 删除本地标签
git tag -d <tagname>

# 暂存
git stash save '001' ()
git stash list
# 应用暂存:pop不保存历史id,apply保存历史id
git stash pop|apply [<stash@{id}>]
# 移除暂存,参考git stash list使用
git stash drop stash@{0}
git stash clear
# 可以查看remote地址,远程分支,还有本地分支与之相对应关系等信息
git remote show origin
# 删除远程仓库不存在的分支
git remote prune origin
# 拉取远程仓库的所有的变动,包括branch,tag等的变动,只会获取有哪些更新,并不会同时pull所有的代码
git fetch origin
# prune,删除远程仓库不存在的分支
git fetch -p
# 查看当前分支合并过哪些目标分支
git branch --contains

# 迁移库,参考地址:https://www.cnblogs.com/ZhangRuoXu/p/6706530.html
# 原来的库操作:
git clone --bare http://git.xxx.com/media/xxx.git

cd xxx.git

# 新库操作:
git push --mirror http://git.xxx.com/xxx/xxx.git

git remote set-url origin remote_git_address(remote_git_address更换成你的新的仓库地址。)

# github操作
git remote add origin https://github.com/xxx/ueditor.git (github上创建仓库)
git push -u origin master