git 随机摘要

重命名
git mv oldFileName newFileName

撤销本地仓库和暂存区提交的记录和提交的文件
git reset --hard

创建新分支(基于某次提交或者基于某个分支)
git checkout -b 分支名 提交id/分支名

查看git历史记录
git log
查看git历史记录简约一条
git log --oneline
查看git历史记录简约一条+图形化
git log --oneline --graph
查看git所有分支提交的历史记录简约一条+图形化
git log --oneline --all  --graph
查看git所有分支最新的4次提交的历史记录简约一条+图形化
git log --oneline --all -n4 --graph
注:这4次提交指的是所有分支加起来的最新提交的4次,指的不是单个分支


怎样删除分支?
git branch -D 删除的分支名

怎样修改当前分支最新一次提交的message信息?
git commit --amend 
esc :wq

怎样修改老旧commit的message信息?前提是:此分支尚未推送至远程
找到操作提交记录的父提交id,也可以理解为上一次提交记录
git rebase -i <父commitid> 
只修该提交信息用把pick更新为r,然后在git弹出的命令窗口中,修改提交记录信息,最后保存退出即可


怎样把连续的多个commit整理成1个?前提是:此分支尚未推送至远程,只修该提交记录,对提交文件内容不做修改
找到操作提交记录的父提交id,也可以理解为上一次提交记录
git rebase -i ac5e973
1.找到像合并的那几个提交信息
2.想合并的几次提交前面的pick保留一个,其余想合并的提交将pick更新为s,然后在git弹出的命令窗口中,添加修改提交记录信息,最后保存退出即可


怎样把间隔的几个commit整理成1个呢?
前提是:此分支尚未推送至远程,只修该提交记录,对提交文件内容不做修改
找到操作提交记录的父提交id,也可以理解为上一次提交记录
git rebase -i ac5e973
1.找到像合并的那几个提交信息
2.把想要合并的几个间隔的提交记录,让他们排列在一起
3.想合并的几次提交前面的pick保留一个,其余想合并的提交将pick更新为s,然后在git弹出的命令窗口中,添加修改提交记录信息,最后保存退出即可

怎样比较暂存区和HEAD所含文件的变化?适用于,工作区的文件已经添加至暂存区,尚未进行提交,比较暂存区和当前分支的文件的不同,如果添加至暂存区的文件正确的,可以进行提交,推送远程;如果比较之后发现暂存区的文件是错误的,这是可以在工作区将错误的文件内容进行修改,重新将的错误修改后的文件,添加至暂存区,再和HEAD进行文件比对。
git diff --cached

怎样比较工作区和暂存区所含文件的差异呢?
git diff

如果只想比较某一个文件呢?
git diff -- 比较的文件名

如果只想比较某几个文件呢?一次排列即可
git diff -- 比较的文件名1 比较的文件名2 比较的文件名3

如何把暂存区恢复成和HEAD的一样?
使用场景:
本来打算,将暂存区的文件,进行提交本地仓分支当做一个新的版本,但是发现,现在工作区的对文件的修改更适合作为一个新的版本,提交至本地仓库的分支上,暂存区的文件需要全部删除,不要了。
git reset HEAD

再用git diff --cached,比较一下暂存区和HEAD文件变化,如果返回为空,说明没变化保持一样,如果有记录说明暂存区和HEAD 文件有不同的记录如下所示

如何让工作区的全部文件恢复为和暂存区一样?
应用场景:
在工作区我做了一版文件优化的操作,将工作区优化的文件添加至暂存区,先不进行提交;然后,在工作区又对优化版本进行修改,但是测试效果,还不如以前添加至暂存区的优化版本呢,想把工作区恢复到添加暂存区优化的版本。
git checkout

如何让工作区的指定某一个文件恢复为和暂存区一样?
git checkout 指定文件名

如何让工作区的指定某些文件恢复为和暂存区一样?
git checkout 指定文件名1 指定文件名2 指定文件名3


变更工作区的文件用git checkout
变更工作区的文件用git reset

怎样取消暂存区部分文件和HEAD一样?
git reset HEAD 指定恢复文件名1 指定恢复文件名2 指定恢复文件名3

消除最近的几次提交?
git reset --hard 想回到指定的commit
注:此命令,要慎用一旦执行此命令,之后的提交记录和文件全部删除,找不回来了。

1.查看不同分支全部文件的差异?
git diff 分支1  分支2

2.查看不同分支指定的文件的差异?
git diff 分支1  分支2 -- 指定查看差异的文件名

3.查看不同分支指定提交的文件的差异?
git diff 分支1commit  分支2commit

4.查看不同分支指定提交并且指定的文件的差异?
git diff 分支1commit  分支2commit -- 指定查看差异的文件名

24效果一样的

删除文件
git rm 删除的文件名

禁止向集成分支执行变更历史的操作?
企业dev/test/master分支禁止使用git rebase -i命令,行变更历史的操作。
禁止向集成分支执行删除提交记录和提交文件的操作?
企业dev/test/master分支禁止使用git rebase -i命令,提交有问题就做回滚,不能做删除。
禁止向集成分支执行强制推送远程操作操作?
企业dev/test/master分支禁止使用git push -f origin 本地分支名
发布了976 篇原创文章 · 获赞 151 · 访问量 25万+

猜你喜欢

转载自blog.csdn.net/weixin_40816738/article/details/105115572
Git