1. 对当前commit的内容进行修正
如果发现commit的内容有问题想要修改,正常做法可以重新再commit一次。通过amend可以直接将commit和暂存区的内容进行合并,就不需要再重新commit一次了。
【amend】修正,会对最新一条 commit 进行修正,会把当前 commit 里的内容和暂存区(stageing area)里的内容合并起来后创建一个新的 commit,用这个新的 commit 把当前 commit 替换掉。
输入上面的命令后,Git 会进入提交信息编辑界面,然后你可以删除之前的 changeId,并且修改或者保留之前的提交信息,:wq 保存按下回车后,你的 commit 就被更新了。
git add .
git commit --amend
只想修改提交信息
git commit --amend -m '新的提交信息'
![在这里插入图片描述](https://img-blog.csdnimg.cn/3b0925018bb440a8b168e8bf7c81579a.png)
2. 合并多个commit
rebase改变基底
rebase合并多个commit
$ git log --pretty=format:'%h: %s'
d2399da: feat: modify c
0134695: feat: modify b
eb63848: feat: modify b
51c0bca: feat: modify b
4cb600e: feat: modify a
d29f331: Initial commit
1. 选择想要合并的commit id(比如对于上述而言我想要把三个modify b进行合并)
git rebase -i 4cb6
注意 git rebase -i [startPonit] [endPoint],这里的startPoint指的是需要合并的commit的前一个commit的id
2. 进入交互页面,进行变基操做
顺序和git log顺序相反(git rebase按照最后提交的在最后面)
![在这里插入图片描述](https://img-blog.csdnimg.cn/f3872b02c1eb4b929e0a161a23fb944c.png)
pick:保留该commit
squash:将该commit合并到前一个commit,保留注释信息
fixup:将该commit合并到前一个commit,但不保留注释信息
drop:丢弃该commit
3. git回退版本
// 表示回退到当前版本,也就是如果有修改但是不想提交,可以直接回退到修改前
将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交
git reset --hard HEAD
// 表示回退到上一个版本
git reset --hard HEAD^
// 回退到指定的commit版本,可以只填前四个
git reset 052e
// --soft用于回退到某个版本
// 回退到上上上个版本
git reset --soft HEAD~3
// 将本地的状态回退到和远程的一样
git reset --hard origin/master
// 撤销回退
git reflog 查看命令历史,以便确定要回到未来的哪个版本
git reset --hard 版本号
4. 暂存区
可以将未提交的修改代码暂时存起来
// 暂存,但是不会保存未add过的文件
git stash save '名字'
// 会把未add过的文件也包含进来
git stash --include-untracked 或
git stash -u
查看缓存栈: git stash list
推出缓存栈: git stash pop
取出特定缓存内容:git stash apply stash@{1}
5. .git文件提交未更新的原因
是因为暂存区的缘故,清除暂存区缓存重新提交即可
git rm -r --cached .
5. git新增commit
在当前分支上合并其他分支的部分commit
git cherry-pick commitId
6. 从某个commit处创建新的分支
git checout -b <new_branch_name> <commid_id>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)