git stash
使用场景:本地修改了代码,在git pull的时候,显示失败,这时可以用stash命令,先将本地修改存储起来,然后再git pull,接着aplly,有冲突就解决冲突
git stash save " " //将本地修改存储起来
git stash list //查看已经存储的列表
git stash apply stash{x} //将存储在stash的内容恢复到代码中
git stash clear //将stash的内容全部清除掉
git reset
使用场景1:误提交了文件,回退add,commit 等一系列操作,
git reset HEAD^ <FILENAME> // 已经add,但是未commit,回退到add之前的状态,带文件名则只回退指定的文件
git reset --mixed HEAD^ //不删除空间代码,撤销commit,并撤销add
git reset --soft HEAD^ // 不删除空间代码,撤销commit,不撤销add
git reset --hard HEAD^ //删除空间代码改动,撤销commit,不撤销add,慎用
使用场景2:代码已经commit了,但是发现有误提交的文件,只想撤回相应文件,其他的保持commit状态,步骤如下:
1.git log <file name> //查看该文件的提交记录
2.git reset <commit_id> <filename> //回退到文件的上一个节点
3.git checkout <filename> //你可以放弃该修改,也可在次基础上重新修改
4.git commit --amend //再次提交
git patch
使用场景:将本地修改打包成patch文件
git diff > test.patch //将本地所有修改的文件打包成patch文件
git diff test.c > test.patch
git format-patch HEAD^ //将最近一次commit的内容打包
git apply --stat xxx.patch //查看patch文件的内容
git apply xxx.patch //将patch文件应用到本地代码中
git pull
使用场景:更新代码,用完git pull --rebase,发现有冲突时,解决完冲后,y一定要直接执行git rebase–continue
git pull --rebase //本地已经commit了代码,合入时发现跟库上的代码有冲突,需要更新本地代码解决冲突时,需要用到该命令,**已经commit的时候,不能直接git pull**,不然又会生产一个新的节点,给合入带来麻烦
git rebase--continue //执行git pull --rebase后,发现有冲突,修改完冲突后,必须执行这个命令,然后接着push代码,如果没冲突,不需要执行这个命令
git rebase --abort //你rebase之后发现冲突太多,想放弃修改的时候,使用该命令,就回到输入git pull --rebase之前的状态
https://blog.csdn.net/u013318019/article/details/114860407