暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Git的使用

原创 手机用户0105 2023-02-26
333

Git概述

版本系统

SVN 是集中式版本控制系统,版本库是集中放在中央服务器的,而开发人员工作的时候,用的都是自己的电脑,所以首先要从中央服务器下载最新的版本,然后开发,开发完后,需要把自己开发的代码提交到中央服务器。

集中式版本控制工具缺点:服务器单点故障、容错性差

Git 是分布式版本控制系统(Distributed Version Control System,简称 DVCS) ,分为两种类型的仓库:

本地仓库和远程仓库:

  • 本地仓库:是在开发人员自己电脑上的 Git 仓库

  • 远程仓库:是在远程服务器上的 Git 仓库




工作流程

1.从远程仓库中克隆代码到本地仓库

2.从本地仓库中 checkout 代码然后进行代码修改

3.在提交前先将代码提交到暂存区

4.提交到本地仓库。本地仓库中保存修改的各个历史版本

5.修改完成后,需要和团队成员共享代码时,将代码push到远程仓库


Git安装

下载地址: https://git-scm.com/download


代码托管

Git 中存在两种类型的仓库,即本地仓库和远程仓库。那么我们如何搭建Git远程仓库呢?我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有 GitHub、码云、GitLab 等。

GitHub(地址:https://github.com/)是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub

码云(地址: https://gitee.com/)是国内的一个代码托管平台,由于服务器在国内,所以相比于 GitHub,码云速度会更快

GitLab(地址: https://about.gitlab.com/ )是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 web 服务





环境配置

安装 Git 后首先要设置用户名称和 email 地址,因为每次 Git 提交都会使用该用户信息,此信息和注册的代码托管平台的信息无关

设置用户信息:

  • git config --global user.name “Seazean”

  • git config --global user.email “zhyzhyang@sina.com” //用户名和邮箱可以随意填写,不会校对

查看配置信息:

  • git config --list

  • git config user.name

通过上面的命令设置的信息会保存在用户目录下 /.gitconfig 文件中




本地仓库

获取仓库

  • 本地仓库初始化

    1. 在电脑的任意位置创建一个空目录(例如 repo1)作为本地 Git 仓库

    2. 进入这个目录中,点击右键打开 Git bash 窗口

    3. 执行命令 git init

      如果在当前目录中看到 .git 文件夹(此文件夹为隐藏文件夹)则说明 Git 仓库创建成功

  • 远程仓库克隆 通过 Git 提供的命令从远程仓库进行克隆,将远程仓库克隆到本地

    命令:git clone 远程 Git 仓库地址(HTTPS 或者 SSH)

  • 生成 SSH 公钥步骤

    • 设置账户

    • cd ~/.ssh(查看是否生成过 SSH 公钥)user 目录下

    • 生成 SSH 公钥:ssh-keygen -t rsa -C "email"

      • -t 指定密钥类型,默认是 rsa ,可以省略

      • -C 设置注释文字,比如邮箱

      • -f 指定密钥文件存储文件名

    • 查看命令: cat ~/.ssh/id_rsa.pub

    • 公钥测试命令: ssh -T git@github.com

文件操作

常用命令

命令作用
git status查看 git 状态 (文件是否进行了添加、提交操作)
git add filename添加,将指定文件添加到暂存区
git commit -m 'message'提交,将暂存区文件提交到本地仓库,删除暂存区的该文件
git commit --amend修改 commit 的 message
git rm filename删除,删除工作区的文件,不是仓库,需要提交
git mv filename移动或重命名工作区文件
git reset filename使用当前分支上的修改覆盖暂存区,将暂存区的文件取消暂存
git checkout filename使用暂存区的修改覆盖工作目录,用来撤销本次修改(危险)
git log查看日志( git 提交的历史日志)
git reflog可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录的操作)

其他指令:可以跳过暂存区域直接从分支中取出修改,或者直接提交修改到分支中

  • git commit -a 直接把所有文件的修改添加到暂存区然后执行提交

  • git checkout HEAD -- files 取出最后一次修改,可以用来进行回滚操作




文件状态

  • Git 工作目录下的文件存在两种状态:

    • untracked 未跟踪(未被纳入版本控制)

    • tracked 已跟踪(被纳入版本控制)

      • Unmodified 未修改状态

      • Modified 已修改状态

      • Staged 已暂存状态

  • 查看文件状态:文件的状态会随着我们执行 Git 的命令发生变化

    • git status 查看文件状态

    • git status –s 查看更简洁的文件状态




文件忽略

一般我们总会有些文件无需纳入Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以在工作目录中创建一个名为 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。下面是一个示例:

# no .a files
*.a
# but do track lib.a, even though you're ignoring .a files above
!lib.a
# only ignore the TODO file in the current directory, not subdir/TODO
/TODO
# ignore all files in the build/ directory
build/
# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
# ignore all .pdf files in the doc/ directory
doc/**/*.pdf





远程仓库

工作流程

Git 有四个工作空间的概念,分别为 工作空间、暂存区、本地仓库、远程仓库。

pull = fetch + merge

fetch 是从远程仓库更新到本地仓库,pull是从远程仓库直接更新到工作空间中

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论