git stash save "备注内容" // 保存未提交的代码并备注
git stash apply // 应用最近一次stash
git stash pop // 应用最近一次stash,随后删除该记录
git stash clear //删除所有stash记录
git stash list
git stash apply 'stash@{1}' //多条stash,应用第二条记录
- vscode git stash 显示没有文件时使用
Git stash pop stash[0]
- git 解决冲突后要重新git add . ==> git commit -m '' ==>git push
- 删除远程分支上的某次提交 segmentfault.com/q/101000000…
# 1. 删除远程分支上的某次提交
git reset --hard HEAD^
^表示前一个版本
git push origin 分支名 -f
-f 参数是强制提交,因为reset之后本地库落后于远程库一个版本,因此需要强制提交。
#2. git revert HEAD
push origin master
------------------------------------------
先使用 `rebase` 把多个提交合并成一个提交,再使用 revert 产生一次反提交
https://blog.csdn.net/weixin_45243181/article/details/104859341
- reset和revert和rebase
revert是放弃指定提交的修改,但是会生成一次新的提交。
git revert commit_id: 能产生一个 与 commit_id 完全相反的提交,即 commit_id 里是添加, revert 提交这里就是删除。表示撤销某个提交,并不是说撤销至某个提交。
举个例子:
新增1.txt文件进行第一次提交,新增2.txt文件进行第二次提交
此时使用 git log 命令找到第一次提交的 commitId,执行 git revert commitId,暂存区只会撤销新增的1.txt
git revert 撤销多次提交:
假设 master 分支需要撤销至某个提交(假设提交id是 commitId,某个提交本身不撤销哦),从某个提交检出分支 dev;
git checkout commitId -b dev
切换至 master 分支,将在 master 分支中而不在 dev 分支中的提交撤销(一定要加 -n,表示撤销后不执行提交,否则你撤销几个提交就要执行几次提交。
git checkout master
git revert -n dev..master
git commit 即可,撤销完毕的 dev 分支可以删除
revert && reset
https://blog.csdn.net/yxlshk/article/details/79944535?spm=1001.2101.3001.6650.9&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-9-79944535-blog-79920012.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-9-79944535-blog-79920012.pc_relevant_antiscanv2&utm_relevant_index=17
rebase 是”变基”的意思,这里的”基”,在我理解是指[多次] commit 形成的 git workflow,使用 rebase,我们可以改变这些历史提交,修改 commit 信息,将多个 commit 合并。
git rebase -i HEAD^^
rebase -i 是 rebase --interactive 的缩写形式,意为「交互式 rebase」。
所谓「交互式 rebase」,就是在 rebase 的操作执行之前,你可以指定要 rebase 的 commit 链中的每一个 commit 是否需要进一步修改。
https://blog.csdn.net/zl1zl2zl3/article/details/104304152?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-104304152-blog-79944535.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-104304152-blog-79944535.pc_relevant_default&utm_relevant_index=2
https://www.csdn.net/tags/MtjaMg5sOTM5NTYtYmxvZwO0O0OO0O0O.html
- error: You have not concluded your merge (MERGE_HEAD exists).
hint: Please, commit your changes before merging.
fatal: Exiting because of unfinished merge.
解决方法:
Git merge —abort
Git reset —merge
Git pull
7. 大厂git提交规范
- 查看远程地址
git remote -v
fetch是克隆地址,push是提交地址