Git作业_0917
一、主观题
1、git pull 和 git fetch的区别?
git pull —— 下载 + 自动合并
作用:git fetch + git merge 的组合命令。它会先从远程拉取最新数据,然后自动尝试合并到你当前所在的本地分支。
可能直接修改你的工作区!在未保存或未提交本地修改时容易出问题。
git fetch —— 仅下载,不合并
作用:从远程仓库下载最新的提交、分支、标签等对象到本地仓库,但不会自动合并或修改你当前的工作区和分支。
2、两个历史不相同的仓库如何git pull 并且 git push到远程仓库?
直接使用git pull 无法拉取远程仓库版本信息,因为是本地和远程仓库是不同的独立仓库,要拉取必须使用 --allow-unrelated-histories参数允许合并无关历史
如:
1 | git pull origin main --allow-unrelated-histories |
合并后解决可能的冲突,再 git push 即可。
3、请解释一下git 的相关概念、工作区、暂存盘、版本库、远程仓库, 介绍它们的关系是什么?操作流程是什么?
git概念:Git 是一个开源的分布式版本控制系统,用于追踪文件变更、协作开发、版本回退等。
工作区:正在编辑文件的目录,就是你的项目文件夹
暂存盘:临时区域,用于存放你准备提交(commit)的文件变更。
版本库:本地仓库,保存项目完整历史记录的地方,位于项目根目录下的 .git 文件夹中。
远程仓库:托管在服务器上的 Git 仓库,如 GitHub、Gitee、GitLab 等平台上的项目仓库。
关系:
- 工作区 → 暂存区:
git add - 暂存区 → 本地版本库:
git commit - 本地版本库 ↔ 远程仓库:
git push/git pull/git fetch - 远程仓库 → 本地版本库 → 工作区:
git clone(首次拉取整个项目)
流程:
1 | # 1. 在工作区修改文件(如:edit index.html) |
4、假如现在项目有一个报错,通过报错提示我定位到具体的文件,但是我现在弄清楚这个错误是谁导致的,git怎么做?
使用命令git blame 文件名
显示指定文件的每行代码最后一次修改的提交信息(作者、时间、代码内容)。
5、我想知道工作区和暂存盘的区别?git使用什么命令合适?
工作区:正在编辑文件的目录,就是你的项目文件夹
暂存盘:一个临时区域,用于存放你准备提交(commit)的文件变更。
使用命令:
1 | git diff # 查看工作区与暂存区差异 |
6、我在做项目实现一个功能,我试了好几个方案,都不理想,最后我权衡下来,觉得还是方案2可行性高,打算从方案2继续研究下去。请问你接下来git怎么操作比较合适?
多方案选择回溯,应使用命令git reset回退到指定提交:
1 | git reset --hard 版本号 # 彻底回溯到方案2 |
文件1.txt
版本1:111
版本2:222
版本3:333
版本4:444
目前在版本4,需要回到版本2
方法1.使用硬回滚
git reset –hard 版本2的版本号
方法2.使用命令git revert
1 | git revert 版本3的版本号 |
7、我在项目因为我对项目有洁癖,被我不小心删除了一个config文件,请问我怎么找回来?
工作区撤销修改:
- git status 查看修改的文件
- 使用命令恢复:
git checkout -- 被恢复的文件
暂存盘撤销修改:
git reset HEAD 被恢复的文件git checkout -- 被恢复的文件
已提交:
1 | git checkout 版本号 -- 文件 # 从历史版本恢复 |
纠正:
1 | git checkout 版本号 -- 文件 # 从历史版本恢复 |
彻底删除后无法找回:git rm config
8、我有个项目打算使用git做分布式管理, 但是当我提交一个版本的时候居然不能提交,请问有几种可能导致不能提交?
代码不规范,写错:git commit -m (没有描述)
没有配置邮箱或账号
没有添加暂存
9、我有个项目是多人协作的,我完成了一个功能,组长催促我赶紧上传到远程,我于是保存版本后,开始使用git push上传,但不能成功上传,请问有几种可能导致不能推送到远程?
仓库别名,地址写错
没有推送权限(ssh没有配置公钥,远程分支保护策略(如main分支需PR才能合并))
远程仓库有最新的版本,不允许提交(先拉取下来再推送)
两个历史不相同的仓库(需添加参数 –allow-unrelated-histories)
网络问题
文件大小超限(如GitHub限制100MB)
10、练习成语接龙游戏,自己找搭档配合练习, 不想练就把整个过程文字描述一下。
git pull拉取远程仓库最新的提交和分支信息,
在本地进行修改添加文件内容,
使用git push提交至远程仓库,
提交不了则使用git stash保存工作区内容,使用git pull拉取最新提交版本信息,在本地解决冲突后,git add保存解决冲突后的版本,git commit提交一个版本,最后git push到远程仓库
1
2
3
4
5
6
7git pull # 拉取远程更新(可能冲突)
git stash # 保存本地未提交修改
git pull # 成功拉取
git stash pop # 恢复并合并,手动解决冲突
git add . # 标记冲突已解决
git commit -m "fix: resolve conflict"
git push origin main # 推送
11、练习分支管理、查看分支、删除分支、添加分支、切换分支、创建切换分支
| 操作 | 命令 |
|





