Git及数仓Interview补充

发布时间 2023-06-07 20:35:46作者: FlowersandBoys
 

Git下载链接:https://git-scm.com/downloads

Git小乌龟下载链接:https://tortoisegit.org/download/

语言包下载链接:https://tortoisegit.org/download/

版本控制:

  • Git-2.13.0-64-bit.exe:Windows版本的Git工具安装包

  • TortoiseGit-2.4.0.2-64bit.msi:Git的可视化工具安装包

  • TortoiseGit-LanguagePack-2.4.0.0-64bit-zh_CN.msi:TortoiseGit工具的汉化包

本地仓库构建

构建本地仓库构建有三种方式:

  • 方式一:通过Git自带的图形化界面进行构建

    • 鼠标右键,Git GUI Here,然后点第一个Create New Repository

  • 方式二:通过Git命令来构建

    • 鼠标右键,Git Bash Here然后输入git init

  • 方式三:通过TortoiseGit构建

    • 鼠标右键,看到Git Create repository Here

Git管理的组成结构

  • 本地版本控制Git服务器

    • 工作区【Work Dir】:就是你开发和修改代码的地方

    • 暂存区【Index】:临时存放你即将提交的版本的地方

      • 所有需要保存的版本必须先添加到暂存区

    • 本地版本仓库【HEAD】:本地的版本库,实现本地的版本的管理

      • 所有暂存区的版本会被提交到本地版本库

  • 远程版本仓库:用于共享项目代码版本

    • GitHub、Gitee

Git操作(添加、提交)

Add添加

通过命令方式添加

#添加一个或者多个文件到暂存区
git add [file1] [file2] ...

#添加指定目录到暂存区,包括子目录
git add [dir]

#添加当前目录下的所有文件到暂存区
git add .

#如何嫌命令难记,也可以使用下述的tortoiseGit工具操作

通过Tortoise工具添加

 

 

Commit提交

通过命令方式添加

#前面我们使用 git add 命令将内容写入暂存区。

#git commit 命令将暂存区内容添加到本地仓库中。

#master涉及分支的管理,我们后面细说。

git commit -m [message]

提交的时候最好写上提交日志 便于后续浏览排查。

通过Tortoise工具添加

提交到本地库

# 前面我们使用 git add 命令将内容写入暂存区。

git commit 命令将暂存区内容添加到本地仓库中。

# master涉及分支的管理,我们后面细说。

git commit -m [message]

# 提交的时候最好写上提交日志 便于后续浏览排查。

 

 

 查看本地版本库

 

 Git基本操作--修改、还原

实现基于本地版本库的修改提交

step1:修改文件 

 

 step2:提交第二个版本

 

 step3:修改并提交第三个版本

 step4:查看版本日志

 

 还原:修改文件,但未提交 

使用tortoiseGit工具,可以将工作区的内容还原至最后一个提交的版本。

 

 

 

 

 

 Git基本操作--版本差异比较、回退

修改文件

 工作区与最新版本的差异

 

 工作区与倒数第二个版本的差异

 

 工作区与之前任意版本的差异比较

可以使用tortoiseGit工具选中文件、右键查看日志信息。 在日志信息中选中想要比较的版本和工作区的之间的差异。

版本回退

 有时候用Git的时候,有可能commit提交代码后,发现这一次commit的内容是有错误的,那么有两种处理方法:

 ​ 1、修改错误内容,再次commit一次

​ 2、使用git reset 命令撤销这一次错误的commit 

第一种方法比较直接,但会多次一次commit记录。 

第二种方法会显得干净清爽,因为错误的commit没必要保留下来。但是使用的时候等慎重,对于新手而言。

shell git reset 命令用于回退版本,可以指定退回某一次提交的版本,有3种模式可供选择

 

 

 

 

小结

如果重置回到某个版本时,关闭了tortoiseGit日志窗口,这个版本之后的版本全部会被删除,无法再次回到之后的版本

重置git reset,只能倒退回退,如果有前进的需求怎么办? 导出需要重置到的版本,重新提交版本,将原来的一个老版本变成最新版本

Git基本操作--删除

文件删除

 

 删除版本

> 将工作区的已经提交的文件删除之后,做提交动作,可以通过日志还原。

 

删除管理

> 也就是所谓的摆脱Git的控制

 

 

 

 添加整个项目

复制工程到本地库

 

添加到暂存区

 

 

忽略不需要做控制的目录

 

 

 

 提交到本地库

 

 

 Git远程仓库--GitHub创建公共仓库

- 如果访问不了,添加DNS解析

 #GitHub

140.82.114.4 github.com

199.232.69.194 github.global.ssl.fastly.net

创建公共仓库

 

 

 本地与GitHub的SSH连接

> 实现本地仓库与GitHub公共仓库的连接 

即使是public的公共仓库,也只是所有人可读,但不是所有人可写 哪些人可写呢?

需要配置SSH认证 - 需要将本地机器的公钥填写在GitHub中,只有填写公钥的机器才能推送

 本地秘钥生成

step1:在自己Windows本地生成一对公私钥

ssh-keygen -t rsa

 step2:找到自己的公钥的位置:当前用户的家目录下:C:\user\用户名 \ .ssh

 

step3:打开公钥的文件,并复制公钥的内容

 配置GitHub

 

 

 将整个公钥的所有内容配置到SSH的key中,添加保存即可

同步到远程仓库

方式一:命令同步

#添加一个远程仓库的地址叫origin
  git remote add origin git@github.com:Frank-itcast/repository1.git
  
  练习中替换成自己的仓库地址
  #git remote add origin git@github.com:AllenWoon/xls_1.git
  
  #将本地master同步到远程的origin
  git push -u origin master
  
  git push -f origin master		# 强制推送

  

 

 

 方式二:工具同步:SSH

 

 

 

 

 

 

 

 

 

 

 

 方式三:工具同步:HTTPS

 

 

 

 

 

 

 

 

 

从远程仓库克隆

方式一:命令

git clone git@github.com:Frank-itcast/reps1.git


git clone git@github.com:AllenWoon/xls_2.git

 

 

 

方式二:工具

 

 

 冲突问题

 

step1:用户1本地是版本3,Github也是版本3

step2:用户2克隆了Github中版本3,用户2的本地是版本3

step3:用户1本地是版本4,GitHub也是版本4

step4:用户2基于版本3开发了用户2的版本4推动给GitHub 产生了冲突,如何解决?

解决

- step1:先拉取远程仓库中的当前的这个版本

- step2:与自己的版本做比较

- step3:调整好确认的版本以后,再次提交

 

 

 

 

 

 

 

 

 

 分支的功能与分支管理

一个项目中可以有多个分支,每个分支独立管理各自的版本,默认只有一个分支:master

创建分支

 

 

切换分支

 

 

 

- 注意:测试vip分支与master 分支

- 在vip分支中修改的这个版本,在master中是否能看到对应的修改?

- 看不到

- **==所有的分支是独立的==**

- 在Master管理的文件或者版本,在vip中是否能看到?

- 看不到

删除分支

- 当前正在使用分支不允许删除

- 删除其他的分支

 

 

 

 分支合并