1. 常用命令
git add README 跟踪 README 文件
git rm --cached filename 从暂存区、本地库删除filename文件
git commit -m “” fn
// 把文件提交到仓库(commit 命令后添加 -m 选项,将提交信息与命令放在同一行 例:git commit -m “wrote a readme” filen)
git commit --amend -m ‘xxx’ 合并上一次提交(用于反复修改)
git status 仓库当前的状态,会显示还没有添加到本地仓库的文件
git ls-files 查看已存放到本地仓库的文件
git rm -r --cached file 删除本地仓库文件
git diff 当前文件和暂存区域快照之间的差异
git diff --staged 比对已暂存文件与最后一次提交的文件差异
git log 显示从最近到最远的提交日志(git log --pretty=oneline 或者 git reflog简洁输出)
git reset --hard HEAD^
// 回退到上一个版本用(HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是 HEAD^^,往上100个版本写成HEAD~100。)
git reset --soft HEAD^ // 修改会保留,撤回还未 push 的 commit
git revert commitID // 添加和commitID相反的操作,生成新的commit
git checkout -- file vim修改了文件,退出后,丢弃文件的修改
git reset HEAD file (版本回退)+ git checkout -- file (文件添加到了暂存区,丢弃修改)
git rm a.txt 删除a.txt文件
git branch dev 创建dev分支
git checkout dev 切换到dev分支
git checkout commitID 切换版本号,同时会保留当前的修改
git checkout -b dev 创建并切换到dev分支(相当于上两条命令)
git branch -a 查看所有本地及远端分支
git branch 查看当前分支(*表示当前分支,master是git的主分支)
git merge dev 合并dev分支到当前分支(合并后master可以看到dev分支对文件的修改
若有冲突,需要手动打开文件修改,之后添加、提交,提交时不能带文件名、空着)
git branch -d dev 删除dev分支
git pull 将远程的信息拉下来,并且合并
git add . + git commit -m “” + git push origin dev 这几步将代码推至了远程
git branch -vv 查看本地分支+上次提交的信息+本地和远程分支的关系
git remote add 别名 远程地址 创建远程仓库别名
git remote -v 看远程仓库别名和链接
git clone -b 分支名 url 克隆需要的分支(git clone -b develop ssh://git@Manager.git)
git branch --unset-upstream // 解除本地分支与远程分支的联系
git branch -u origin/dev-stable 将本地所在分支与远程origin/dev-stable分支相连接
git push 别名 分支 推送本地分支到远程仓库(例:git push origin master)
git pull 远程库别名 远程分支名 拉取远程库内容(例:git pull origin master)
git commit --amend 可以查看修改提交描述信息
git merge --abort 当合并的过程中,由于冲突难解决,你想放弃合并,回到未合并之前的状态;
git log --graph --pretty=oneline --abbrev-commit 可以在命令行方便地查看提交图
git checkout -b b-master origin/master
// 作用是checkout远程的master分支,在本地起名为b-master分支,并切换到本地的b-master分支
git pull origin master --rebase // rebase
git pull --rebase
git rebase main // rebase main 分支
git branch -m oldBranchName newBranchName // 修改本地分支名称
git push --delete origin oldBranchName // 将远程分支删除
git push --set-upstream origin newBranchName // 将改名后的本地分支推送到远程,并将本地分支与之关联
git log -1 id 显示 id 最近的一条 log 信息,不加 id 默认显示最新的,想显示多条,就把 -1 换成-n
git log -1 --name-status 显示最近一次提交,修改的文件列表
git log start_version..HEAD 查看 start_version 到最新版本的 log
git log --merges 只看 merge 的 log
git log --merges id..HEAD 会显示 id 到当前最新 log 的所有 merge 提交信息,如果后续合入的分支有多个 merge 信息,都会显示出来,所以会和 git log --merges 看到信息不一致,可以加上--first-parent,就只显示合入时的那一个 merge 信息
git remote prune origin : 删除本地保存的已经删除的远程分支,更新代码时,会更新新增的远程分支,但是不会删除已经删除的远程分支,在.git/remotes/origin 目录下
git branch -r | grep -v HEAD : 获取所有远程分支
查看一段时间内增加,减少的代码行数
git log --author="liu" --since=2023-6-1 --until=2023-12-27 --pretty=tformat: --numstat | grep -v 'devlog' | gawk '{add+=$1; subs+=$2;loc+=$1-$2} END {printf "add:%s sub:%s loc_sum:%s\n,add,subs,loc}'
列出当前分支最新的合并提交的 id
git rev-list --min-parents=2 --max-count=1 HEAD
git rev-list 列出提交历史记录
--min-parents=2 列出最少有两个父节点的提交,也就是合并提交
--max-count=1 只列最新的一次
HEAD 从最新的提交开始查找