git的使用

38 阅读5分钟

git简介

image.png

  • git有一个版本控制系统,可以看到有谁在哪个时间上修改了哪些文件。 image.png

image.png

  • 缺点,如果中央服务器出现故障了,或者网络连接出现了问题,那么所有人都无法工作了。 image.png

image.png

image.png

git命令

  • git所有的命令都以git开头,后面跟着具体的命令 image.png

image.png

image.png

image.png

  • 可以把仓库理解为一个目录,目录里面所有的文件都可以被git管理,git可以追踪到任何一个文件的增删改的版本。

git仓库的创建

image.png

  • 找到一个合适的位置创建一个空目录

image.png image.png

方式2:在github上远程克隆一个仓库

get clone https://github.com/geekhall-laoyang/remote-repo.git

image.png

git 工作区域和文件状态

image.png

  • 自己电脑上的目录,可以直接看到
  • 临时存储区域。用来保存即将上传的内容
  • 给git init 包含了完整的项目历史和元数据,是git存储代码和版本信息的主要位置

image.png 总之就是在工作区修改完文件之后,先暂时保存在暂存区,然后统一交给本体仓库完成提交操作。

image.png

  • Untrack,已经创建但是未被git管理的文件
  • Unmodified:已经被管理的,但是文件的内容还没有发生变化
  • Modified:已经修改但是还没添加到暂存区

git status可以获取仓库的状态。

image.png

image.png git commit:将文件提交到仓库中。提交到仓库中,才算真正的保存起来。注意,这个命令只会提交

image.png- m来指定要提交的信息,如果不指定就会进入一个vim的交互式页面

image.png

image.png 查看仓库状态,file1已经被提交走了。还剩下file2

image.png

  • git add*.文件后缀通配符的使用

image.png

  • git add.把当前文件夹下的所有文件都添加到暂存区里面 image.png
  • git log查看提交的历史记录

image.png image.png

image.png来查看简洁的提交记录

  • git reset,mixed是默认的参数 image.png 提交一次就是一个版本

  • ls查看一下工作区的内容

先创建,再添加,最后提交 这时候再进行版本回退操作。

image.png

  • 把仓库目录复制三份,分别执行三种不同的参数 image.png

image.png

  • 回退的版本 image.png image.png (HEAD ->main)也指向了第二个版本。

  • 谨慎使用hard命令

  • git reflog可以查看一下我们操作的历史记录。

git diff:

image.png

image.png

  • 什么也不加,默认比较的是工作区和暂存区之间的差异内容

----------------插入vim的简单使用方法-------------------

image.png

image.png

  • 100644表示文件的权限
  • git diff HEAD其中HEAD指向分支的最新提交节点
  • git diff -cached 比较暂存区和版本库之间的差异
  • git diff +两个版本提交的id
  • git diff HEAD~ HEAD比较当前版本和上一个版本的快捷方式
  • git diff HEAD~ HEAD file3.txt只会显示file3,txt的差异内容 image.png

image.png

image.png

image.png

删除文件rm:rm是linux操作系统的命令

rm file2.txt删除文件file2.txt image.png 这里只是删除了工作区里面的文件,需要添加,然后删除掉暂存区里面的文件 git rm file5.txt

image.png 最后要记得提交

image.png

image.png

.gitignore

image.png

  • 这样会让我们的仓库更加简洁,不会纳入一些不必要的文件。 image.png -比如:

image.png

image.png

image.png

image.png

  • .gitignore文件生效有一个前提,就是这个文件不能是已经被添加到版本库中的文件

vi .gitignore修改要添加的文件名称时候,文件夹是以/结尾的,比如temp/

image.png

image.png

  • .gitignore文件的匹配规则

image.png

image.png

image.png

image.png

  • 此外,github上面有模板,有需要的直接拿来用或者根据自己的需要进行修改

github的账号的创建和第一个远程仓库的写入

  • 点击绿色的按钮就可以新建一个仓库了 image.png

  • 把本地的仓库和远程的仓库关联起来。

  • 1.本地没有仓库的话,先在本地创建一个。

image.png

HTTP

  • 推送的时候需要用户名和密码 image.png

SSH(推荐)

  • 推送的时候不需要用户名和密码,但是需要在GitHub上添加SSH公钥的配置 image.png
  • 克隆库,没有成功,因为没有配置SSH密钥 image.png

image.png

  • 第一次生成SSH密钥直接摁回车就好了 image.png

image.png

  • 公钥文件内容展示: image.png

  • 添加成功 image.png

  • 把远程仓库克隆到本地 image.png

image.png

  • 同步两个仓库 image.png

image.png

image.png

  • 在已经有本地仓库的情况下,如何关联本地仓库和远程仓库
git remote add origin git@github.com:11shiqi/first-repo.git
git branch -M main
git push -u origin main

image.png

  • 第二行的命令是指定分支的名称为main

  • 将main分支和远程仓库相关联起来:git push -u origin main:main image.png

  • 也可以在远程仓库上直接修改文件 image.png

  • 远程仓库已经修改了,这时候要把远程添加的内容同步到本地 image.png

git pull origin main image.png

github以外的代码托管平台

Gitee

GitLab

Git的一些图形化工具和一些常见的IDE

vscode

  • 在目录下打开code .就可以在vscode中打开当前目录。 image.png

image.png

image.png

分支

  • 多个开发人员可以在自己的分支上进行开发工作,最后再合并到主线代码库当中。
  • 或者在分支上进行新功能的开发
  • 建立一个问题修复的分支来处理一些bug和缺陷,让主线代码仓库处于一个随时可用的比较稳定的状态,而不会影响到其它功能的开发和测试,保证了项目的高效运行和协作。

image.png

  • 命名方式 image.png

  • 默认分支 image.png

  • 切换分支git switch image.png

  • 合并分支 image.png

  • 注意,分支被合并后还是存在的。

  • 删除分支 image.png

git branch -D 分支名称删除还没有合并的分支

  • 分支的命名也是有一定的作用的。
  • git branch feature开发具有一定特色功能的分支。

image.png

image.png

image.png

image.png

image.png

image.png

  • 使用git diff 命令来查看两个分支的不同的内容

image.png

image.png

image.png

  • 回退和rebase image.png