你想要创建名为feature-newFunc的新分支。然后你在新分支上进行了两次提交,你希望合并这个分支上的两次提交并合并整个功能到main分支。
操作指示:
创建新的分支:
创建一个名为feature-newFunc的新分支,并切换到这个分支。
在feature-newFunc分支上进行两次提交。
操作内容如下:
保存文件。
提交这个更改,并在提交信息中描述为:"Added another diary entry for feature work".
保存文件。
提交这个更改,并在提交信息中描述为:"Added diary entry for feature work".
第一次提交在diary.txt文件中(mydiary文件夹下),添加以下条目:2023-10-28: Started developing a new feature.
第二次提交再次在diary.txt文件中,添加以下条目:2023-10-29: Continued work on the new feature.
合并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分支,但不希望更改提交历史。请完成这个操作。
操作指示:
确保你处于最新的main分支上
从experiment分支上获取所需更改
应用选中的提交(请选择第一次commit(comment为:Added new approach details.))到main分支
上传更改到远程仓库
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)),但同时想保留这些错误提交的记录。
操作指示:
确保在正确的分支上进行操作
检查当前的提交历史
回退到目标提交
再次提交
确认更改
推送到远程仓库
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分支上,你正在开发一个允许用户上传图片的新功能。任务是查看两个分支之间的差异并决定是否要合并它们。如果有合并冲突,请解决冲突后合并。
操作指示:
在main分支上提交修改:
操作内容如下:
切换到main分支,在styles.css文件中修改body的字体(第一行)为:body { font-family: 'Times New Roman'; }
提交这个修改。
切换到feature-upload分支。
查看feature-upload与main分支之间的差异。
决定是否合并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分支。
操作指示:
切换到documentation分支
开始交互式重组
重新排列、合并提交
完成重组后,将更改合并回main分支
将更改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