Git奇幻之旅二

简介: 今天我要给你讲一个关于Git的故事,希望你能从中学到一些常用的命令!

第十二天:暂存未完成的修改

小明和小红在开发一个新功能时,他们需要切换到另一个分支去修复一个紧急的bug。但是他们的当前分支上还有一些未完成的修改,他们不想提交这些修改,也不想丢弃这些修改。有一天,他们听说了一个叫stash的命令,可以让他们暂存这些修改,然后在需要的时候恢复这些修改。他们决定尝试一下,于是他们在终端输入了下面的命令:

git stash # 暂存当前分支上的修改
git checkout master # 切换到master分支
git pull origin master # 拉取远程仓库的master分支
git checkout -b hotfix # 创建并切换到hotfix分支
# 修复bug并提交
git checkout master # 切换到master分支
git merge hotfix # 合并hotfix分支到master分支
git push origin master # 推送master分支到远程仓库
git branch -d hotfix # 删除hotfix分支
git checkout dev # 切换回dev分支
git stash pop # 恢复暂存的修改

这样,他们就成功地暂存了未完成的修改,并且在修复bug后恢复了这些修改。他们觉得很灵活,因为这样他们就可以在不同的分支上切换了。😎

但是,有时候stash命令也会带来困惑。有一次,小明在恢复暂存的修改时,发现自己之前暂存了多次的修改,但是不知道哪个是最新的。他很迷茫,不知道如何查看和管理这些暂存的修改。有一天,他听说了一个叫stash list和stash apply的命令,可以让他查看和恢复指定的暂存的修改。他决定尝试一下,于是他在终端输入了下面的命令:

git stash list # 查看所有暂存的修改
git stash apply stash@{
   1} # 恢复指定的暂存的修改

这样,他就成功地查看和恢复了指定的暂存的修改,并且继续开发新功能。他觉得很清晰,因为这样他就可以管理自己的暂存了。😊

第十三天:修改最近的提交

小明和小红在提交代码时,有时候会发现自己忘记了添加一些文件,或者写错了提交信息。他们想要修改这些提交,但是又不想重新提交一次。有一天,他们听说了一个叫commit --amend的命令,可以让他们修改最近的提交。他们决定尝试一下,于是他们在终端输入了下面的命令:

git add . # 添加所有文件到暂存区
git commit --amend # 修改最近的提交
git push -f origin master # 强制推送到远程仓库

这样,他们就成功地修改了最近的提交,并且覆盖了远程仓库上的提交。他们觉得很方便,因为这样他们就可以避免多余的提交了。😎

但是,有时候commit --amend命令也会带来风险。有一次,小明在修改最近的提交时,不小心把自己的分支推送到了错误的远程分支上。他很惊慌,不知道如何撤回这次推送。有一天,他听说了一个叫revert的命令,可以让他用一次新的提交来回滚之前的提交。他决定尝试一下,于是他在终端输入了下面的命令:

git log # 查看提交历史
git revert <commit ID> # 回滚指定的提交
git push origin master # 推送到远程仓库

这样,他就成功地撤回了错误的推送,并且用一次新的提交来记录这次回滚。他觉得很安全,因为这样他就不会影响其他人的代码了。😊

第十四天:重置代码和切换版本

小明和小红在开发一个新功能时,有时候会发现自己的代码有一些错误或者不满意的地方。他们想要重置代码,使工作区回到过去的某个状态。有一天,他们听说了一个叫reset的命令,可以让他们回退到某个版本,并且保留或者丢弃他们的修改。他们决定尝试一下,于是他们在终端输入了下面的命令:

git log # 查看提交历史
git reset --soft <commit ID> # 回退到指定的版本,并且保留修改
git status # 查看修改的状态
git add . # 重新添加修改到暂存区
git commit -m "fix bug" # 重新提交修改
git push -f origin master # 强制推送到远程仓库

这样,他们就成功地重置了代码,并且重新提交了正确的代码。他们觉得很灵活,因为这样他们就可以修改自己的代码了。😎

但是,有时候reset命令也会带来麻烦。有一次,小明在回退版本时,不小心加了一个--hard选项,导致他的修改全部丢失了。他很慌张,不知道如何找回他的修改提交。有一天,他听说了一个叫checkout的命令,可以让他切换到某个版本或者分支。他决定尝试一下,于是他在终端输入了下面的命令:

git reflog # 查看所有的提交历史
git checkout <commit ID> # 切换到指定的版本
git status # 查看修改的状态

这样,他就成功地找回了他丢失的修改,并且切换到了正确的版本。他觉得很幸运,因为这样他就可以继续开发了。😄

第十五天:查看和恢复删除或者回退的提交

小明和小红在删除或者回退提交时,有时候会发现自己不小心删除或者回退了一些重要的提交。他们想要查看和恢复这些提交,但是又不知道这些提交的ID。有一天,他们听说了一个叫reflog的命令,可以让他们查看所有的提交历史,包括已经被删除或者回退的提交。他们决定尝试一下,于是他们在终端输入了下面的命令:

git reflog # 查看所有的提交历史
git checkout -b dev <commit ID> # 用指定的提交创建一个新的dev分支
git push origin dev # 推送dev分支到远程仓库

这样,他们就成功地查看和恢复了删除或者回退的提交,并且创建了一个新的分支。他们觉得很清晰,因为这样他们就可以管理自己的提交了。😊

但是,有时候reflog命令也会带来困惑。有一次,小明在查看所有的提交历史时,发现自己有很多重复或者无用的提交。他很烦恼,不知道如何清理这些提交。有一天,他听说了一个叫rebase -i的命令,可以让他交互式地修改提交历史。他决定尝试一下,于是他在终端输入了下面的命令:

git rebase -i HEAD~5 # 交互式地修改最近5个提交
# 在编辑器中选择要保留、合并、修改或者删除的提交
git push -f origin master # 强制推送到远程仓库

这样,他就成功地清理了无用的提交,并且修改了提交历史。他觉得很方便,因为这样他就可以优化自己的代码了。😎

第十六天:拣选特定的提交到另一个分支

小明和小红在开发一个新功能时,他们发现自己的分支上有一些提交是不需要的,或者是需要移到另一个分支上的。他们想要拣选特定的提交到另一个分支,但是又不想影响当前的分支。有一天,他们听说了一个叫cherry-pick的命令,可以让他们把特定的提交复制到当前的分支。他们决定尝试一下,于是他们在终端输入了下面的命令:

git log # 查看提交历史
git checkout master # 切换到master分支
git cherry-pick <commit ID> # 把指定的提交复制到当前分支
git push origin master # 推送到远程仓库

这样,他们就成功地拣选了特定的提交到另一个分支,并且保持了当前分支的完整性。他们觉得很灵活,因为这样他们就可以移动自己的代码了。😎

最后

你已经听完了我给你讲的关于Git的故事,我很开心能够和你分享这些知识和技巧。我希望这些故事能够帮助你更好地理解和使用Git,让你的开发过程更加顺畅和高效。

Git是一个非常强大和灵活的工具,它可以让你管理和协作你的代码,解决各种问题,创造更多的可能。但是Git也有一些复杂和难以掌握的地方,需要你不断地学习和实践,才能真正地掌握它。

我希望你能够继续学习和探索Git的奥秘,发现更多的故事和技巧。如果你有任何问题或者建议,欢迎你随时联系我,我很乐意和你交流和讨论。

相关文章
|
安全 程序员 开发工具
Git奇幻之旅一
今天我要给你讲一个关于Git的故事,希望你能从中学到一些常用的命令。
|
4月前
|
存储 开发工具 git
|
7天前
|
机器学习/深度学习 Shell 网络安全
【Git】Git 命令参考手册
Git 命令参考手册的扩展部分,包含了从基础操作到高级功能的全面讲解。
19 3
|
4月前
|
开发工具 git
【GIT 第二篇章】GIT常用命令
Git常用命令涵盖初始化、状态管理、提交、分支处理、远程操作等关键流程。`git init`启动本地仓库,`git clone`下载远程仓库。通过`git status`和`git diff`检查工作状态与差异。利用`git add`暂存文件,`git commit`保存更改。借助`git branch`、`git checkout`、`git merge`和`git rebase`管理分支。使用`git fetch`、`git pull`和`git push`同步远程仓库。通过`git reset`、`git revert`和`git checkout`实现版本回退。
72 0
|
1月前
|
缓存 Java Shell
[Git]入门及其常用命令
本文介绍了 Git 的基本概念和常用命令,包括配置、分支管理、日志查看、版本回退等。特别讲解了如何部分拉取代码、暂存代码、删除日志等特殊需求的操作。通过实例和图解,帮助读者更好地理解和使用 Git。文章强调了 Git 的细节和注意事项,适合初学者和有一定基础的开发者参考。
48 1
[Git]入门及其常用命令
|
2月前
|
开发工具 git
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
这篇文章是关于Git常用命令的总结,包括初始化配置、基本提交、分支操作、合并、压缩历史、推送和拉取远程仓库等操作的详细说明。
134 1
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
|
1月前
|
开发工具 git 开发者
|
1月前
|
开发工具 git 开发者
提升Git效率:掌握这5个高级命令
【10月更文挑战第17天】
47 0
|
3月前
|
存储 Linux 开发工具
掌握 Git 命令:每个开发者的必备技能
无论团队项目还是个人开发,掌握 Git 命令都是必备技能。本文介绍 Git 的基本概念与命令,如初始化仓库 (`git init`)、添加文件 (`git add`)、提交更改 (`git commit`)、检出分支 (`git checkout`)、合并分支 (`git merge`) 等,还分享了高级技巧如查看差异 (`git diff`)、撤销提交 (`git revert`)、修复合并冲突 (`git mergetool`) 和使用别名简化命令 (`git config --global alias.ci commit`)。
|
3月前
|
机器学习/深度学习 Shell 开发工具
Python使用管道执行git命令报错|4-7
Python使用管道执行git命令报错|4-7