首页 > 其他分享 >Git 基础

Git 基础

时间:2022-10-13 17:45:57浏览次数:50  
标签:git -- 基础 版本号 Git 提交 缓存 分支

初始化版本库 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

相关文章