Lab1 6

1-8-2 小组合作创建和维护Git仓库

组长建好仓库之后,组员用git clone 仓库地址就可以将gitee上的仓库克隆到本地了(使用http克隆时需要先领取私人令牌)。

合并分支

组员在本地用git checkout -b Student-id创建分支Student-id后,使用git push origin Student-id就可以把这个本地创建的分支推送到远程(当然可以直接在gitee的操控界面上直接创建)

在本地创建Function-id.py后,使用git add Function-id.pygit commit -m "msg"就把新的改动放到本地分支的版本库里了,然后git push origin Student-id:Student-id就可将本地的改动同步到远程分支

合并dev分支的时候,要先切换到本地的dev分支:git checkout dev;然后拉取远程的dev分支:git pull origin dev,此时本地和远程的dev分支就一样了。在dev分支处用Student-id分支的内容进行合并:git merge Student-id;然后推送到远程dev即可合并:git push origin dev:dev

结束后每一个Student-id分支里有main.py和Student-id.py,dev中有main.py和5个组员的Student-id.py

解决冲突

在dev分支下git pull origin dev,同步远程dev分支

在本地修改好自己的main.py文件然后git add .git commit -m "msg",在dev合并Student-id分支。组长上传完自己的dev后,组员和上文一样用同样的操作进行对远程dev的合并时,因为大家改的都是共同的一份文件——main.py,所以会发生冲突。此时弹出一份文件显示分支的差异,然后把main.py里面的内容改成组长的id,把旁枝末节删掉。git add . git commit -m "Conflict solved" 之后git push origin dev:dev即可完成。

(如果是git pull origin dev的命令,出现冲突的话会在拉取就发出警告,因为这个是默认自动合并的;如果先git fetch origin dev,再git merge dev,会在merge的时候才告诉冲突)

完成发布

组长 git pull origin dev 在本地同步仓库 dev 分支,git checkout master git merge dev合并到 master 分支,git push origin master 上传到远程 master 分支

1-9-2 个人创建Pull Request

任务描述

小组合作在 Git 仓库创建 Pull Request的单人PR

任务步骤

  1. 拉取远程仓库的 dev 分支至本地仓库
    使用git checkout切换到dev分支,并使用git pull 拉取远程分支
    git checkout dev
    git pull origin dev

  2. 从本地仓库的 dev 分支签出到新的 Feature-学号 分支
    git checkout -b Feature-学号

  3. 在本地的 Feature-学号 分支上修改各自的 Function-学号.py 文件
    修改各自的文件后,通过git add .暂存,再git commit -m "..."提交,然后git push origin Feature-学号推送新分支到远程的仓库

  4. 将新分支推送至远程仓库并向 dev 分支发起 Pull Request
    进入gitee的代码仓库找到对应的Feature-学号分支去向dev分支发起PR
    d3319e1071ae6e7072e539cbfb99627.png

  5. 在托管平台上 的 PR 界面处理自己的 PR 审核
    在gitee上审核自己的PR
    dc20f587e5d0652fb701aff23a3f5ea.png

  6. 待所有人处理完 PR 后,组长在本地同步仓库 dev 分支,合并到 master 分支,并上传到远程 master 分支
    组长进行git操作,先同步dev分支
    git checkout dev
    git pull origin dev
    后合并到master并上传
    git checkout master
    git pull origin master
    git merge dev  
    git push origin master

  7. 组长删除远程仓库的所有 Feature 分支,所有人各自删除本地仓库
    组长通过git push origin --delete Feature-学号 删除每个Feature分支,各人将本地仓库文件删除即可

1-9-3 小组合作创建 Pull Request

任务步骤

  1. 组员 Fork 组长的 BUAA-SE-2024-Lab01-Group组号 仓库(上游仓库)。 进入gitee平台,找到fork按钮,fork组长的上游仓库。

  2. 组员将自己刚 Fork 的仓库 clone 到本地,组长则将上游仓库再次 clone 到本地。
    git clone 仓库url

  3. 从本地仓库的 dev 分支签出到新的 Feature-学号 分支。
    git checkout Feature-学号

  4. 对 Feature-学号 分支上的 main.py 文件进行修改。
    本地ide里面修改文件,然后git add .加入暂存区,然后git commit

  5. 将新分支推送至各自的远程仓库并向上游仓库的 dev 分支发起 Pull Request。
    git push 来推送到远程仓库,然后在gitee平台里面发起PR,选择发起对象是上游仓库的dev

  6. 组长在上游仓库的 PR 界面合并了自己的 PR 后,发现组员的 PR 出现冲突。

  7. 组员依次从上游仓库更新 dev 分支,将 dev 分支 merge 到 Feature-学号 分支,处理完冲突后推送至远程仓库并再次发起 PR 让组长审核。
    git remote add <shortname> <url>
    添加一个新的上游仓库
    git push 上游仓库 dev : dev
    让本地dev分支和上游仓库dev相同,然后
    git merge Feature-学号
    这时候会报冲突,手动解决保留组长信息,然后git push 到远程仓库的dev分支,在gitee界面发起PR申请,对象是上游仓库的dev分支

  8. 待所有组员完成第 7 步后,组长在本地同步仓库 dev 分支,合并到 master 分支,并上传到远程 master 分支。
    组长 git pull origin dev 在本地同步仓库 dev 分支,git checkout master git merge dev合并到 master 分支,git push origin master 上传到远程 master 分支

1-9-4 小组创建 Issue

操作步骤

  1. 进入 Git 仓库

  2. 新建 Issue

    • 点击 新建Issue 按钮。
    • 填写 Issue 标题和内容,内容为 Markdown 实验中所还原的 Git 指南。
    • 插入相关图片,确保内容完整。
    • 提交 Issue。
      fe706c1c26ae18138519b0f046a7521.png
  3. 组长标记 Issue

    • 组长为 Issue 添加标签 feature-学号
      6644697709bf4678bf996dde82d9725.png

操作结果

成功创建 Issue,组长添加特定标签。
bcc136a126b2b96cc9ef17c47e13583.png

Built with MDFriday ❤️