reset(版本撤回)
git reset 命令用于回退版本,可以指定退回某一次提交的版本。
git reset 命令语法格式如下:
git reset [--soft | --mixed | --hard] [HEAD]
–mixed
–mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。
git reset HEAD^ # 回退所有内容到上一个版本
git reset HEAD^ hello.php # 回退 hello.php 文件的版本到上一个版本
git reset 052e # 回退到指定版本
–soft
回退到上上上一个版本,保留commit中的提交内容
git reset --soft HEAD~3
–hard
回退到上一个版本,撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交
git reset --hard HEAD~^
git reset --hard origin/master # 将本地的状态回退到和远程的一样
注意:谨慎使用 –hard 参数,它会删除回退点之前的所有信息。
HEAD 说明:
- HEAD 表示当前版本
- HEAD^ 上一个版本
- HEAD^^ 上上一个版本
- HEAD^^^ 上上上一个版本
- 以此类推…
可以使用 ~数字表示
- HEAD~0 表示当前版本
- HEAD~1 上一个版本
- HEAD^2 上上一个版本
- HEAD^3 上上上一个版本
- 以此类推…
revert(撤消操作)
git revert
操作是将选择的某一次提交记录 重做,若之后又有提交,提交记录还存在,只是将指定提交的代码给清除掉。
git revert 052e # 重做到指定版本
冲突的相关操作
- 在git操作过程中,最不想看到的一种情况就是冲突,但是,冲突就是一个狗皮膏药,永远避免不了,revert也跑不了这个魔咒,那么我们改怎么处理这个情况
合并冲突后退出
git revert --abort
- 当前的操作会回到指令执行之前。
合并后退出,但是保留变化
git revert --quit
- 该指令会保留
合并后解决冲突,继续操作
- 如果遇到冲突可以修改冲突,然后重新提交相关信息
git add .
git commit -m "提交的信息"
stash(存储)
save
执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。
git stash save "save message"
list
查看stash了哪些存储
git stash list
show
显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
git stash show -p : 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p
,比如第二个:git stash show stash@{1} -p
git stash show
git stash show stash@{1} -p
apply
应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num}
, 比如第二个:git stash apply stash@{1}
git stash apply
git stash apply stash@{1}
pop
命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num}
,比如应用并删除第二个:git stash pop stash@{1}
git stash pop
git stash pop stash@{1}
drop
丢弃stash@{$num}存储,从列表中删除这个存储
git stash drop stash@{$num}
clear
删除所有缓存的stash
git stash clear
commit(提交)
amend
修改最近一次 commit 信息,修改之后需要强制提交 -f
git commit --amend
-m
-m 添加提交备注信息
git commit -m [message]
-a
-a 参数设置修改文件后不需要执行 git add 命令,直接来提交
git commit -a
结合一下
git commit -am '修改 hello.php 文件'
- Post link: https://yanxiang.wang/git%E5%B8%B8%E7%94%A8/
- Copyright Notice: All articles in this blog are licensed under unless otherwise stated.