您现在的位置是:首页 >技术杂谈 >【Git面试宝典】谈谈你对Git的理解?Git版本冲突的产生和解决?Git相关命令有那些?网站首页技术杂谈
【Git面试宝典】谈谈你对Git的理解?Git版本冲突的产生和解决?Git相关命令有那些?
目录
谈谈你对Git的理解?
首先Git是一个免费的、开源的分布式版本控制系统,可以帮助我们快速的高效的处理小型到大型的各种项目。
在开发中,Git目前已经成为了主流的一种代码托管技术,基本上大多数公司都在使用Git进行多人协同开发,从而对代码进行版本控制、分支管理等。在我们进行Git操作的时候主要有涉及到几个概念,分别是远程仓库、本地仓库、克隆、提交、推送、拉取、分支、合并等。
远程仓库:是指我们代码存储在服务器的地方。简单来说就是一个代码托管中心,可以说是最终代码存放的地方。团队所有人都可进行访问。
本地仓库:是指开发人员自己本地的一个仓库,每个人都有一个属于自己的本地库只有自己可以访问。
克隆:是指从远程仓库将整个项目代码复制到本地库的过程。
提交、推送、拉取是Git工作机制中的环节,分别是将代码提交到本地仓库,本地仓库中保存修改的各个历史版本;然后将代码推送到远程仓库;在此之前,如果我们的本地代码不是最新版本的,就需要先从远程仓库将代码拉取下来到本地库,如果有冲突需先解决冲突然后在重新推送到远程库。
而我们在开发中可能会遇到多个分支,比如主分支master,开发分支develop等,但一般不会在主分支上进行开发,而是我们自己单独的从主分支或者开发分支中分出来一条分支,比如test分支,然后在test分支上进行代码开发。在我们开发完成后,就需要进行分支合并到我们的主分支上。在进行分支合并的时候常常会出现Git版本冲突,出现冲突的原因是,多人协同开发项目时,两个开发者对同一个文件同一个位置做出了不同的内容修改,因此就发生了冲突。解决冲突的办法是对其冲突部分进行手动修改;大致可以分为三个步骤,分别是寻找冲突,修改冲突,提交修改后的冲突文件。
一般发生冲突的场景会出现在分支合并和代码拉取两个环节。
以上就是我对Git的理解。
git版本冲突如何产生的?
所谓冲突指的就是,两个开发者对同一个文件同一个位置做出了不同的内容修改,然后在进行分支合并时或者是从远程仓库拉取代码到本地库时,就会产出冲突报错;两个不同的版本,导致git不知道要接受那个。
如何解决git版本冲突?
对冲突的文件手动进行修改;
1.寻找冲突
首先要找到出现冲突的位置,通过git merge 分支名 如果有冲突的话会提示那些文件有冲突。
2.修改冲突
我们可以直接在电脑中找到冲突文件对比差异,然后进行手动修改为正确的;如果使用命令的话,使用 cat 冲突文件查看不同分支代码的差异,然后 vim 进入冲突文件进行删除修改正确代码。
3.提交修改后的冲突文件
分别执行命令git add 添加到暂存区;git commit -m 提交到本地库;最后git push推送到远程库就可以了。
git的相关命令有那些?
1.常用命令
git config --global user.name 用户名 | 设置用户名
git config --global user.email 邮箱 | 设置用户邮箱
git init | 初始化本地库
git status | 查看当前状态
git add | 添加到暂存区
git commit -m '日志描述' 文件名 | 提交到本地库
git push 别名 分支名 | 推送到远程库
git pull 远程库地址别名 远程分支名 | 拉取远程库内容到本地库
git reflog | 查看历史记录
git reset --hard 版本号 | 版本穿梭
2.分支命令
git branch 分支名 | 创建分支
git branch -v | 查看分支
git checkout 分支名 | 切换分支
git merge 分支名 | 将指定分支合并到当前分支上
3.对远程仓库操作的命令
git remote add 别名 远程库ssh地址 | 给远程库地址起一个别名
git remote -v | 查看当前所有的远程地址别名
git push 别名 分支 | 将本地库推送到远程库
git clone 远程地址 | 将远程库内容克隆到本地库
git pull 别名 分支名 | 将远程库内容拉取到本地库