Git 操作练习

技术杂烩   2023-07-30 19:40   1319   0  

任务一

你想要创建名为feature-newFunc的新分支。然后你在新分支上进行了两次提交,你希望合并这个分支上的两次提交并合并整个功能到main分支。

操作指示:

  1. 创建新的分支:

  • 创建一个名为feature-newFunc的新分支,并切换到这个分支。

  1. 在feature-newFunc分支上进行两次提交。

  • 操作内容如下:

    • 保存文件。

    • 提交这个更改,并在提交信息中描述为:"Added another diary entry for feature work".

    • 保存文件。

    • 提交这个更改,并在提交信息中描述为:"Added diary entry for feature work".

  1. 第一次提交在diary.txt文件中(mydiary文件夹下),添加以下条目:2023-10-28: Started developing a new feature.

  2. 第二次提交再次在diary.txt文件中,添加以下条目:2023-10-29: Continued work on the new feature.

  1. 合并feature-newFunc分支上的两次提交,并合并整个功能到main分支。

git checkout -b feature-newFunc
git add ./mydiary/diary.txt
git commit -m "Added diary entry for feature work"
git add ./mydiary/diary.txt
git commit -m "Added another diary entry for feature work"
git switch main
git merge feature-newFunc

任务二

你正在experiment分支上进行实验性工作。experiment分支上已经进行了两次commit操作(修改test文件夹下node.txt),中途你决定将第一次commit操作(comment为:Added new approach details.)的更改应用到main分支,但不希望更改提交历史。请完成这个操作。

操作指示:

  1. 确保你处于最新的main分支上

  2. 从experiment分支上获取所需更改

  3. 应用选中的提交(请选择第一次commit(comment为:Added new approach details.))到main分支

  4. 上传更改到远程仓库

git checkout -b experiment
git add ./tests/node.txt
git commit -m "Added new approach details."
git add ./tests/node.txt
git commit -m "branch experiment commit 2"
---------------------------------------------
git log # 复制上次commit的ID
git switch main
git cherry-pick ${上次commit的ID}
git push

任务三

dev分支上进行了4次提交(修改backend文件夹下project.txt),但是发现第三次(comment为:Some content was added repeatedly ))和第四次提交(comment为:Mistakenly added irrelevant content))是错误的于是想回退到上一次提交(comment为:Add new content)),但同时想保留这些错误提交的记录。

操作指示:

  1. 确保在正确的分支上进行操作

  2. 检查当前的提交历史

  3. 回退到目标提交

  4. 再次提交

  5. 确认更改

  6. 推送到远程仓库

git checkout -b dev
git add ./backend/project.txt
git commit -m "branch dev commit 1"
git add ./backend/project.txt
git commit -m "Add new content"
git add ./backend/project.txt
git commit -m "Some content was added repeatedly"
git add ./backend/project.txt
git commit -m "Mistakenly added irrelevant content"
-----------------------------------------------------
git revert HEAD^
# accept incoming change at ./backend/project.txt
git add ./backend/project.txt
git commit -m "Add new content"
git push --set-upstream origin dev

任务四

在main分支上已经有了一个前端网页的基本版本(在frontend文件夹下)。而在feature-upload分支上,你正在开发一个允许用户上传图片的新功能。任务是查看两个分支之间的差异并决定是否要合并它们。如果有合并冲突,请解决冲突后合并。

操作指示:

  1. 在main分支上提交修改:

  • 操作内容如下:

    • 切换到main分支,在styles.css文件中修改body的字体(第一行)为:body { font-family: 'Times New Roman'; }

    • 提交这个修改。

  1. 切换到feature-upload分支。

  2. 查看feature-upload与main分支之间的差异。

  3. 决定是否合并feature-upload分支到main。如果有合并冲突,请解决冲突后合并。

git switch main
git checkout -b feature-upload
git switch main
git add ./frontend/styles.css
git commit -m "change body font to 'Times New Roman'"
git switch feature-upload
git diff main
git merge main

任务五

已经创建了一个名为documentation的新分支,以便更新项目的文档。 在documentation分支上,已经进行了以下操作:

  • 添加了一个新的INSTALL_GUIDE.md文件,描述了如何安装该项目。

  • 更新了PROJECT_OVERVIEW.md,增加了一些关于项目的新功能的描述。

  • 添加了一个CONTRIBUTING_GUIDE.md文件,为其他开发者提供了如何为该项目贡献代码的指南。

  • 修复了PROJECT_OVERVIEW.md中的一个小错误。

但在提交之后,你意识到可能更有意义地组织这些提交。特别是,你想:

  • 将PROJECT_OVERVIEW.md的两次更改合并为一个提交。

  • 将INSTALL_GUIDE.md和CONTRIBUTING_GUIDE.md的更改交换位置,使得安装指南在贡献指南之后。 你的任务是,正确地重组这些提交,然后将更改合并回main分支。

操作指示:

  1. 切换到documentation分支

  2. 开始交互式重组

  3. 重新排列、合并提交

  4. 完成重组后,将更改合并回main分支

  5. 将更改push回远程仓库

git switch main
git checkout -b documentation
git add ./documentation/INSTALL_GUIDE.md
git commit -m "add INSTALL_GUIDE"
git add ./documentation/PROJECT_OVERVIEW.md
git commit -m "commit 1 of PROJECT_OVERVIEW"
git add ./documentation/PROJECT_OVERVIEW.md
git commit -m "commit 2 of PROJECT_OVERVIEW"
git add ./documentation/CONTRIBUTING_GUIDE.md
git commit -m "add CONTRIBUTING_GUIDE"
git add ./documentation/PROJECT_OVERVIEW.md
git commit -m "fix a little bug in PROJECT_OVERVIEW"
-------------------------------------------------------
git rebase HEAD~5
#pick 595afc3 add CONTRIBUTING_GUIDE
#pick 5c2fe1f commit 1 of PROJECT_OVERVIEW
#squash f85b1df commit 2 of PROJECT_OVERVIEW
#pick 206c01a add INSTALL_GUIDE
#pick c4f4a64 fix a little bug in PROJECT_OVERVIEW
git switch main
git merge documentation
git push


博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。