『Git』记录 Git 相关的问题

1. 代码写一半,发现忘记切换分支了,怎么处理?

① 使用git stash命令将当前工作目录中的修改保存起来。这将暂存修改,以便稍后可以应用到其他分支上。
② 使用git checkout <branch>命令切换到正确的分支,以继续开发工作。
③ 在切换到正确的分支后使用git stash pop命令来应用之前暂存的修改,将之前写的代码修改恢复到当前分支中,这样就可以在正确的分支上继续开发,同时保留了之前的修改。

2. 你正在 develop 分支上开发自己的代码,此时线上突然有 bug 需要你紧急修复,怎么处理?

① 保存正在开发的代码,使用git stash命令将修改暂存起来,或者提交到本地分支。
② 切换到线上出现紧急 bug 的分支:git checkout master
③ 创建一个紧急修复的分支:git checkout -b emergency-fix
④ 进行 bug 修复并提交更改:

# 进行 bug 修复
# 使用 git add 和 git commit 提交更改

⑤ 将 bug 修复推送到远程仓库:git push origin emergency-fix
⑥ 创建一个紧急修复的 Pull Request,提交 PR,等待审查和合并。
⑦ 完成紧急 bug 修复后,切换回开发分支,并且恢复之前保存的修改:

git checkout develop
# 恢复之前暂存的代码
git stash pop # 或者使用git stash apply

3. git revert 和 git reset 的区别?

git revert是用一次新的 commit 来回滚之前的 commit,git reset是直接删除指定的 commit。
① 在回滚这一操作上看,效果差不多,但是在日后继续 merge 以前的老版本时有区别。因为git revert是用一次逆向的 commit “中和”之前的提交,因此日后合并老的 branch 时会导致这部分改变不再次出现,但是git reset是之间把某些 commit 在某个 branch 上删除,因而和老的 branch 再次 merge 时,这些被回滚的 commit 应该还会被引入。
git reset是把 HEAD 向后移动,而git revert是 HEAD 继续前进,只是新的 commit 的内容和要 revert 的内容正好相反,能够抵消要被 revert 的内容。

扩展阅读:
GIT | GIT常见面试题 - CSDN博客

posted @   北岛孤影  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示