一天吃透 Git 面试八股文
什么是 Git?
Git 是一个版本控制系统,用于跟踪计算机文件的变化。Git 是一个跟踪计算机文件变化的版本控制系统,用于帮助协调一个项目中几个人的工作,同时跟踪一段时间的进展。换句话说,我们可以说它是一个促进软件开发中源代码管理的工具。
Git 和 SVN 的区别
Git 是分布式版本控制系统,SVN 是集中式版本控制系统
什么是 Git 仓库?
Git 仓库指的是一个用于存放源代码的地方。Git 仓库是指存放所有 Git 文件的地方。这些文件既可以存储在本地仓库,也可以存储在远程仓库。
有哪些 Git 命令及其功能?
Git config - 配置用户名和电子邮件地址
Git add - 添加一个或多个文件到暂存区域
Git diff - 查看对文件的修改情况
Git init - 初始化一个空的 Git 仓库
Git commit - 将更改提交到头部,但不提交到远程仓库
使用 Git 有什么好处?
更快的发布周期
易于团队协作
广泛的接受度
保持源代码的完整性
拉动请求
如何解决 Git 中的冲突?
识别造成冲突的文件。
对这些文件进行所需的修改
使用 git add 命令添加文件。
最后一步是在 git commit 命令的帮助下提交文件的修改。
如何发现一个分支是否已经被合并了?
有两个命令可以确定:
git branch --merged -- 返回已被合并到当前分支的分支列表。
git branch --no-merged --返回尚未合并的分支的列表。
git remote 和 git clone 什么区别?
'git remote add'在你的 git 配置中创建了一个条目,指定了一个特定 URL 的名称,而'git clone'通过复制位于该 URL 的现有仓库来创建一个新的 git 仓库。
reset 和 Revert 的区别是什么?
Git reset 是一个强大的命令,它可以让你的工作更有效率。
Git reset 是一个强大的命令,用于撤销对 Git 仓库状态的局部修改。Git 重置的操作对象是 "Git 的三棵树",即:提交历史(HEAD)、暂存索引和工作目录。
Git 的 Revert 命令创建了一个新的提交,撤销了前一个提交的修改。这个命令为项目添加了一个新的历史。它并不修改现有的历史。
Git 和 GitHub 的区别是什么?
Git 是一个版本控制系统。Git 是一个版本控制系统,用于管理源代码历史。而 GitHub 则是一个基于云的托管服务,用于管理 Git 仓库。GitHub 的目的是帮助更好地管理开源项目。
git reset 的功能是什么?
Git reset "的功能是将你的索引以及工作目录重置为你最后一次提交的状态。
git fetch&git pull 详解
git fetch 的意思是将远程主机的最新内容拉到本地,用户再检查无误后再决定是否合并到工作本地分支中。
git pull 是将远程主机中的最新内容拉取下来后直接合并,即:git pull = git fetch+git merge,这样可能会产生冲突,需要手动解决。
Git stash 存储的目的是什么?
Git stash 获取工作文件和索引的当前状态并放入堆栈以供下一步使用,并返回一个干净的工作文件。因此,如果在对象中间并需要跳转到其他任务,同时不想丢失当前的编辑,可以使用 Git stash。
说说 GIT 合并的方法以及区别?
Git 代码合并有两种:git merge 和 git rebase
git merge:这种合并方式是将两个分支的历史合并到一起,现在的分支不会被更改,它会比对双方不同的文件缓存下来,生成一个 commit,去 push。
git rebase:这种合并方法通常被称为“衍合”。他是提交修改历史,比对双方的 commit,然后找出不同的去缓存,然后去 push,修改 commit 历史。
Git 提交代码的步骤
什么是“git cherry-pick”?
git cherry-pick 通常用于把特定提交从存储仓库的一个分支引入到其他分支中。常见的用途是从维护的分支到开发分支进行向前或回滚提交。这与其他操作(例如 merge、rebase)形成鲜明对比,后者通常是把许多提交应用到其他分支中。
说一下 Gitflow 工作流程吗?
Gitflow 工作流程使用两个并行的、长期运行的分支来记录项目的历史记录,分别是 master 和 develop 分支。Master,随时准备发布线上版本的分支,其所有内容都是经过全面测试的。Hotfix,维护或修复分支是用于给快速给生产版本修复打补丁的。修复分支很像发布分支和功能分支,除非它们是基于 master 而不是 develop 分支。Develop,是合并所有功能分支,并执行所有测试的分支。只有当所有内容都经过彻底检查和修复后,才能合并到 master 分支。Feature,每个功能都应留在自己的分支中开发,可以推送到 develop 分支作为功能分支的父分支。
评论