1. git reset HEAD^ git commit 之后尚未 push, 想要撤销此次提交 可以通过 git reset HEAD^1 撤销一次 git reset HEAD^2 撤销两次 --mixed 意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作 这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。 --soft (默认) 不删除工作空间改动代码,撤销commit,不撤销git add . --hard 删除工作空间改动代码,撤销commit,撤销git add . git log --pretty=oneline git log --oneline --decorate 修改上一次提交备注信息: git commit --amend 查看 <<当前仓库的地址>>:git remote show origin 修改 <<仓库地址>>: git remote set-url origin git@192.168.30.29:chenwei/em-data.com.cn.git 查看提交树形结构: git log --oneline --graph --decorate --all 简单结构: git log --oneline --cherry git log --graph --pretty=oneline --abbrev-commit 2. git reset 和 git reverse 区别 git revert 是生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留 使用和最近一次commit完全相反的操作生产新的commit 来进行中和 git reset 是回到某次提交,提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区 git reset HEAD 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。 git revert <commit log string> 是撤消该commit,作为一个新的commit。 git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。 HEAD 指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令 git reset --hard commit_id。 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。 > 将【某个文件】单独回滚 (切换到ProdDetail.js所在的目录执行下面命令) git log --oneline 查询 提交日志 id git reset 1c6f682 ProdDetail.js 将文件的改动退回到暂存区 git checkout ProdDetail.js 用线上的覆盖本地文件 3. git reflog 可以查看整体的提交记录(包含撤销的相当于一个链路)
10. git remote show origin (10.1) 所有远 程 仓库信息:git remote -v (10.2) 某个远程仓库的信息:git remote show xx[origin] xx: 为远程地址的别名 (10.3) 添加远程仓库版本:git remote add [name] [url] name: 自己取的仓库的名称 url:地址 添加完后使用拉取代码 git fetch --all 提交代码:git push name HEAD:refs/for/分支名 提交的代码. name: 同上 (10.4) 删除 远程仓库: git remote rm name (10.5) 删除 【本地】 分支: git branch -d new_branch (10.6) 删除 【远程】 分支: git push origin --delete new_branch 注:同名的本地分支是不会删除的 (10.7) 重命名远程仓库:git remote rename old_name new_name (10.8) 根据指定 commit_id 创建分支: git checkout -b new_branch commit_id (10.9) 模糊查找分支:git branch | grep 'story_89' 清除本地无效分支: git fetch -p 注:远程已删除 (10.10) 合并代码: git checkout -b new_branch git status -s git commit -m '提交' // 假如 new_branch 和其他分支有冲突,且其他分支已经合到了 master git pull --rebase 拉取最新代码到本地 git commit -m '' git push origin new_branch // 开始合并到代码 git checkout master git merge new_branch 11. 从暂存区移出但保留在工作目录:git rm --cached <file> git rm --cached SchoolVo.java git rm -f SchoolVO.java 强行从暂存区和工作区删除文件 进入目录: git rm -r * 删除整个目录下的文件和子目录 13. 查看历史 (13.1) git log (13.2) 单行日志打印:git log --oneline (13.3) 逆向查看日志:git log --reverse --oneline 正向的从仓库创建到最近的日志 (13.4) 指定用户日志:git log --author=xuzhi --oneline -5 git log --oneline --before={3.weeks.ago} --after={2022-05-20} --no-merges --no-merges 选项以隐藏合并提交 --since 和 --before,但是你也可以用 --until 和 --after。 (13.5) 切到指定目录,查看某个文件的提交记录: git blame GIt.txt 或者 git blame ./thirdPass/git/GIt.txt