一、Git
1、Git和SVN的区别
git是分布式版本控制,svn是集中式版本控制(核心区别)
git相对于svn的优势就是不需要网络即可版本控制
git把内容按数据方式存储,而SVN是按文件
git可以是公用的,可以分享,svn基本是公司内部才能访问,网外不方便访问
git不依赖中央服务器,即使服务器有问题也不受影响,svn依赖服务器,一旦服务器有问题就会
受影响
git没有一个全局的版本号,svn有
2、git 工作流程
1)在工作目录中修改某些文件
2)对修改后的文件进行快照,然后保存到暂存区域
3)提交更新,将保存在暂存区域的文件快照永久转储到Git目录中
3、fetch、merge、pull 的区别
pull相当于git fetch 和 git merge,即更新远程仓库代码到本地仓库,然后将内容合并到当前分支
git fetch:相当于是从远程获取最新版本到本地,不会自动merge
git merge:将内容合并到当前分支
git pull:相当于是从远程获取最新版本并merge到本地
4、分支的相关命令
创建分支:git branch 分支名
查看分支:git branch
切换分支:git checkout 分支名
创建并切换分支:git checkout -b 分支名
合并分支:git merge
查看已经合并的分支/未合并的分支:git branch --merge / git branch --no-merge
删除的已合并的分支/未合并的分支:git branch -d 分支名 / git branch -D 分支名
5、git merge 和 git rebase 的区别
两个都代表合并
git merge 操作会在当前分支上生成一个新的 commit 节点,并保留所有的操作历史节点,
会按照 commit 时间顺序排列
rebase 操作后的历史并不会按 commit 时间顺序排列, 一旦分支中的提交对象发布到
公共仓库,就不要对该分支进行 rebase 操作
6、解决分支合并冲突
分支提交冲突:当分支对某文件某句话进行修改后,切换到主分支也对该文件该句话进行修改,
使用git merge进行合并,需要将两个修改进行合并。此时合并产生冲突
解决方法:
1)git status查看冲突文件
2)编辑器打开冲突文件,查看内容。Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容
3)修改文件内容
4)提交 git add file ; git commit -m ""
查看分支合并图 git log –graph
7、git常用的命令
1)从远程库中克隆项目
git clone 项目地址
2)工作区到暂存区
git add 文件名字、git add . 多个文件操作
3)暂存区到版本区
git commit -m"注释信息"
4)把版本区文件上传到远程仓库
git push origin master
5)将远程仓库的文件拉取/下载下来
git pull origin master
6)查看当前历史记录、查看所有的操作记录
git log、git reflog
7)查看文件状态
git status
8)查看版本信息
git version
9)查看配置信息
git config --list
10)在当前目录新建一个Git代码库(生成隐藏.git文件)
git init
11)版本回退
git reset --hard 版本id
12)查看xx文件修改了哪些内容
git diff xx
13)删除文件名
git rm 文件名
14)恢复一个文件
git checkout
15)关联一个远程库
git remote add [远程仓库git地址]
16)移除关联一个远程库
git remote remove [远程仓库git地址]
17)创建分支
git branch 分支名
18)查看分支数量
git branch
19)切换分支
git checkout 分支名
20)创建并切换分支
git checkout -b 分支名
21)当文件修改时切换分支
git stash 暂存文件
22)合并分支
git merge
23)合并指定分支到当前分支
git merge [branch]
24)查看已合并的分支
git branch --merge
25)查看未合并的分支
git branch --no-merge
26)查看远程分支
git branch -r
27)删除未合并的分支
git branch -D 分支名
28)删除已合并的分支
git branch --
29)删除远程分支
git branch -d 分支名
30)生成一个可供发布的压缩包
git archive
9、什么是 fork?fork、分支和克隆之间有什么区别
fork是对存储仓库进行拷贝
clone克隆是个对某个远程仓库的本地拷贝,实际上是拷贝整个源存储仓库,包括所有历史记录和分支
branch分支是一种机制,用于处理单一存储仓库中的变更,并最终目的是用于与其他部分代码合并
10、什么时候应使用 “git stash”?
git stash 命令把你未提交的修改保存以供后续使用,以后就可以从工作副本中进行还原