初始化版本库 init
设置参数 config --global --system
从工作目录到缓存 add
从缓存到版本库 commit
从工作目录到版本库 commit -a(不提倡使用)
查看历史记录 log
查看状态 status
创建分支 branch 新分支名 需创建分支处
查看分支 branch
切换分支 checkout 分支名
创建标签 tag 标签名 分支名
查看标签 tag
变基 rebase 分支名
删除分支 branch -d
分支名发布 archive --format=压缩格式 --prefix=目录名/ 需发布的位置 > 压缩包文件名
git add -i/-p/-Agit add -i-->1,2,3,4,5,6,7,8
提交方法:
1、git add 文件名/git commit -m
2、git commit -a -m(工作目录中的所有变化都一次提交到版本库)
3、git commit -m 文件名(把指定文件提交到版本库,要求文件已被追踪)
git diff:
1、不加参数,比较工作目录和缓存
2、--cached,比较版本库和缓存
3、head,
比较版本库和工作目录文件改名:git mv 就文件名 新文件名(执行后默认加入缓存,需commit)
文件删除:
1、物理删除,再提交
2、git rm 文件名,再提交
文件恢复:git checkout 版本号,再创建分支
撤销操作:git reset --hard(--soft) head~n,n是多少,就撤销多少步。
命令别名:git config --global alias.别名
命令文件忽略:
1、设置.git/info/exclude,添加欲忽略的文件名,不会被扩散
2、创建.gitignore,添加欲忽略的文件名,可以扩散
3、设置core.excludesfile “A文件名”,添加欲忽略的文件名到A中
修改文本编辑器:设置参数core.editor "编辑器文件名"
创建分支:
1、原地创建:branch 新分支名
2、其他分支创建:branch 新分支名 创建处分支名
3、创建并切换分支:checkout -b 新分支名 创建处分支名
4、任意位置创建:branch 新分支名 版本号
切换分支:checkout 分支名
查看分支:branch
删除分支:branch -d(-D) 分支名
分支改名:branch -m(-M) 旧分支名 新分支名
恢复分支:branch 新分支名 版本号(标签)
分支合并:
1、直接合并 merge 被合并分支名
2、压合合并 merge --squash 被合并分支名 (合并后加入缓存区,再决定如何提交)
3、拣选合并 cherry-pick 版本号 -n
冲突处理:合并后,冲突的文件会被标记,手动处理冲突后,提交。
一、查看git日志
1、显示最近的N次提交:git log -N
2、显示日志的格式:git log --pretty=online git log --pretty=format:"%" (%可以通过git help log查看)
二、指定日志显示范围
1、显示日志的时间范围:git log --since(after)="2022.3.18" git log --until(before)="2022.3.18"
2、显示的版本范围:git log 老版本号..新版本号(从老版本号+1显示到新版本号之间的日志)
git log 版本号.. (从版本号+1显示到最后一次提交)
git log 版本号 (从初次提交显示到版本号)
3、版本号操作符:~N:表示从当前版本回退N个版本 :每一个表示回退一个版本
三、比较差异
1、比较所有被追踪文件在指定版本和最新版本之间的差异: git diff 版本号
2、比较所有被追踪文件在指定版本1和指定版本2之间的差异: git diff 版本号1..版本号23、
依次比较历史上所有版本之间的差异 git log -p
四、跟踪内容
1、查看指定文件中每一行的提交信息:git blame 文件名
2、查看指定文件中指定行的提交信息:git blame -L 行号,行号 文件名 git blame -L 行号,+/-n 文件名
3、查看指定文件中的复制信息:git blame 文件名 -M,复制信息要求三行或以上
4、跨文件,查看指定文件中的复制信息:git blame -C -C 文件名
5、显示文件间复制历史记录:git log -C -C -p
五、修改历史记录
1、增补提交:git commit -m "message" --amend
修改最会一次提交的留言为message git commit -C 版本号 --amend
修改最会一次提交的留言为指定版本号的提交留言 git commit -c 版本号 --amend
以指定版本号的留言为模板,启动编辑器,修改最后一次留言
增补提交时,按照文件提交的三种方式进行,则既修改留言又提交文件。
2、反转提交:git revert 版本号 -n -数字 --no-edit
通过创建一个新提交来抵消历史上的某次提交
反转提交不能用-m留言,使用文本编辑器编辑默认留言,也可以直接使用默认留言 (--no-edit)
暂存多次反转,一起提交。(-n)
连续多次反转相邻的提交 (-数字)
避免翻转时出现冲突,最好按顺序反转,出现冲突时,可用“add 冲突文件名”消解
3、穿越历史:git rebase -i 版本号 进入rebase互动模式,在文本编辑器中旧记录在上显示从版本号+1到最新的所有历史记录 按照每一记录前的命令(pick,reword,squash,edit)从版本号+1到现在,重构历史记录
修改历史留言:互动模式中,在要修改留言的记录前,使用reword,在之后弹出的编辑器中编辑新留言
删除历史记录:互动模式中,删掉欲删除的历史记录
改变历史记录顺序:互动模式中,修改命令为pick的历史记录行顺序
增加历史记录:互动模式中,插入命令为pick的历史记录行 (必须存在的历史记录,有正确的版本号)
合并历史记录:在欲合并的历史记录前使用squash命令,则该记录会和上一条记录合并,且弹出修改留言窗口
拆分历史记录:互动模式中,在要拆分的记录前,使用edit,
在回到历史使用reset --soft撤销一步,然后分步提交两次
git rebase --continue继续重构历史记录,也可--abort放弃此次rebase.
一、保存工作目录和缓存区
1、git stash save "message" 保存当前的目录和缓存区, 若不加save,则使用最后一次commit的留言保存若工作目录或缓存区没有变化,则不能保存 ,保存后,工作目录和缓存区都变成没有变化
2、git stash list 列出当前各个保存的列表
3、git stash show 保存号 显示某个保存的变化情况 若不加保存号,则显示最后一次保存的变化
4、git statsh apply (--index) 保存号 工作目录恢复到某个保存状态,对应的保存不删除
5、git statsh pop (--index) 保存号 工作目录恢复到某个保存状态,对应的保存会删除
--index参数决定是否恢复缓存区 恢复后是将保存的状态叠加到现在commit状态 若工作目录中有未commit的变化,则不能恢复
6、git stash drop 保存号 删除某次保存 若不加保存号,则删除最后一次保存
7、git stash clear 删除全部保存
一、git命令扩展
1、git log --stat 在显示历史记录的同时,给出每次提交相对上次提交的变化统计信息
2、git diff --stat 在显示版本间差异的同时,给出的差异的统计信息
3、git log --graph 以图形的方式,显示分支上带合并过程的历史记录 若进行过rebase -i修改过历史,则不再算作合并过程
4、git reset 文件名 把指定文件从缓存区撤出,若不加文件名,则清空缓存区
5、git status -s 以简略模式显示工作目录状态
红M:已追踪,未缓存 绿M:已追踪,已缓存 红A:未追踪,已缓存 红??:未追踪,未缓存
6、git clean [-n][-f][-d][-x][-X]
-n:显示将要被删除的未追踪文件列表 -f:删除未追踪、未忽略的文件,是否需要加 -f,可以在config参数里设置 -d:也删除包含未追踪文件的目录 -x:也删除被忽略的文件 -X:只删除被忽略的文件
7、git gc 压缩整理版本库,缩小版本库占用空间,提高检索效率
8、git reflog 显示head在历史上的变化过程
标签:git,--,基础,版本号,Git,提交,缓存,分支 From: https://www.cnblogs.com/gaoxiaocuo/p/16788957.html