创建于: 2023-09-18 19:02:00
最近一次更新: 2025-04-07 19:47:00
关于Git的一切(即将)
鉴于Git的工具属性,本博文记录我在项目开发上使用 Git 的一些心得和方法。本博文将以实际场景出发,列出大量场景并给出最好的解决方案(也许)。
将本地未提交的代码移动到另一个分支
在开发一个新功能时,如果没开发完,又接到另一个更加紧急的需求需要在这个分支上进行,此时需要将没开发完的代码移到另一个分支。
1 | git stash # 暂存该分支未提交但已更改并保存的代码。 |
本来打算取消某次 commit 来重新提交,但是不小心误删(drop commit)了,如何恢复?
1 | git reflog |
此时你会找到你 drop 的 commit,把对应的 commit hash
复制下来,然后执行:
1 | git reset --hard <commit_hash> |
即可
提交了的 commit 如何如何撤回?
如果想保留提交的修改:
1 | git reset --soft HEAD^{n} |
其中 n
为你想要撤回的 commit 数量。前一次就是 1
。
如果不想保留:
1 | git reset --hard HEAD^{n} |
从其他分支上取一个 Commit 到当前分支
1 | git cherry-pick <commit_hash> |
某个开发者交的 PR 的 Commit 很多并且很乱,需要将多个 Commit 合并为一个
1 | git rebase -i HEAD~n |
其中 n
为你想要合并的 commit 数量。前一次就是 1
。
在打开的编辑器中,将你想要合并的 commit 的 pick
改为 squash
(或者 s
),然后保存退出即可。
保存后,会打开一个新的编辑器,显示你要合并的 commit 的信息。你可以选择保留所有的 commit 信息,或者只保留第一个 commit 的信息,或者完全自定义 commit 信息。
有多个 author 在一个 Commit
1 | git commit -m "xxxxx |