Git基础考试题

Stella981
• 阅读 717

Git:

1.在windows上搭建git环境,成功后查看版本号

Linux安装

sudo apt-get install git -y

yum install git -y

windows直接安装exe

查看版本号:git version

2.git与svn的区别

(1)git是分布式的,svn是集中式的

(2)git把内容按元数据的方式存储,svn是按文件存储,git的内容完整性优于svn

(3)git和svn分支不同

(4)git没有一个全局的版本号,而svn有

(5)git不需要联网就可以使用,svn需要联网

3.在现有版本,完成一次版本提交的过程

git status

git add .

git diff

git commit -m "提交信息"

git push [remote-name]

4.还原刚刚提交的内容

(1)git log 查询刚才提交的commit id

(2)git reset --hard commitId

或 git checkout commitId

5.查看提交记录并截图

git log

6.一个大的需求从开发到上线,代码执行的过程

(1)需求开发阶段,创建主分支master/开发分支dev/和一些具体的功能分支,进行开发

(2)需求开发完合并代码阶段,将具体功能分支上的代码合并到开发分支dev上

(3)需求测试阶段,从dev分支上拿代码进行测试

(4)需求正式投产阶段,从dev分支上拉出一个release分支,用来发布生产代码,投产完成后,合并到master分支和dev分支上

(5)需求投产后bugfix阶段,需要从master分支上拉出bugfix分支,用于修改bug,修改后合并到master分支和dev分支上

7.简述git分支

git会把我们每一次提交的内容连成一条时间线,这条线就是一个分支,一个仓库被初始化后,git会默认生成一个主分支,叫做master分支;

git分支意味着可以从主线上分离开来,在不影响主线的同时继续工作;

git的分支模型是轻量级的,可以很快地切换分支,可以频繁使用分支与合并

8.以下命令的含义

初次运行前的配置 git config --global user.name xuhaojin

git config --global user.email 1579582159@qq.com

在工作目录中初始化新仓库 git init

在现有项目中克隆 git clone

检查当前文件状态 git status

跟踪新文件修改 git add 忽略某些文件 .gitignore

git diff(

$ git diff                             working tree和stage文件的差异

$ git diff --cached              stage和commit文件的差异

$ git diff HEAD                   commit和working tree文件的差异

$ git diff test                       不是对比当前分支,而是对比test分支

$ git diff HEAD -- ./test      对比其中的test文件

$ git diff HEAD^ HEAD      对比最近两次提交之间的差异

$ git diff topic master        对比topic和master分支的差异

提交更新 git commit -m "更新说明"

跳过使用暂存区域 git commit -a

移除文件 git rm <文件或目录>

移动文件 git mv<文件或目录>

查看历史记录 git log

修改最后一次提交 git commit --amend

取消已经暂存的文件 git reset HEAD

取消对文件的修改 git checkout --

查看当前远程仓库 git remote

添加远程仓库 git remote add

从远程仓库抓取数据 git fetch [remote-name]

推送到远程仓库 git push [remote-name]

查看远程仓库信息 git remote show [remote-name]

查看当前所有分支和当前所在的分支 git branch

创建分支 git branch

创建并切换分支 git branch -b 

工作区切换到分支 git checkout 

将一个分支合并到当前分支 git rebase <分支> 和 git merge <分支>

git暂存工作区修改 git stash 

git恢复暂存内容到工作区 git stash pop

从一个分支已经commit的内容合并到当前分支 git cherry-pick

删除未被追踪/未提交的文件 git clean

拉取(包含fetch的功能)git pull

基于远程分支创建新的本地分支 git checkout -b origin/

9.有一个紧急问题需要处理,git处理问题的流程

(1)返回到原先已经发布到生产服务器上的分支

(2)为这次紧急修补建立一个新分支,并在其中修复问题

(3)通过测试后,回到生产服务器所在的分支,将修补分支合并起来,然后再推送到生产服务器上。

(4)切换到之前实现新需求的分支,继续工作

10.在本地建立一个工程,写一个.java文件,并上传至版本库

(1)git init新建一个git版本库

(2)在git仓库目录下新建java项目,并写一个java类

(3)git add . 添加项目到暂存区

(4)git commit -m "提交信息" 将项目提交到版本库

(5)git remote origin add "远程仓库地址" 添加一个远程仓库

(6)git push -u origin master,将本地内容推送到远程仓库的master分支上

11.git文件的三种状态

已提交(commit)/已修改(modified)/已暂存(staged)

12.基本的git工作流程(工作目录/暂存区/git仓库之间的日常操作)

(1)工作目录修改内容,生成快照保存到缓存区(stage files,1->2)

(2)提交更新,将暂存区的快照永久保存到git仓库中(commit,2->3)

(3)从git仓库检出内容或修改到工作目录(checkout,3->1)

Git基础考试题

13.分布式版本控制系统优点

安全性高,每个git仓库都是一个完整的版本库,可以在不联网的情况下使用。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
前端尾随者 前端尾随者
2年前
sourceTree 添加 ssh key 方法
1.使用git客户的生成公私钥:id\rsa、id\rsa.pub1.1设置Git的username和email:$gitconfigglobaluser.name"xxx"$gitconfig\globaluser.email"xxx.mail@xxx.com"1.2.生成SSH密钥过程:1.2.1.检查是不是已经存在密钥(
Wesley13 Wesley13
2年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这