git简要介绍与使用

一. 简介

git是一种分布式版本控制工具

  • 何为分布式版本控制

    所有版本信息仓库全部同步到本地每个用户,可以直接在本地查看历史版本,提交版本,只需要联网后push到相应服务器或者用户那。

    优点:不会因为服务器损坏和网络问题导致不能工作

    缺点:所有人都有全部代码,安全性不足

  • git和SVN主要区别SVN:集中式,代码放中央服务器;工作时要首先从服务器获取最新代码,完成后推送到中央服务器;必须联网才能工作

    Git:分布式,没有中央服务器,每人电脑有完整版本库;工作前只需要推送或接收其他人的修改;不需要联网

二. 安装与介绍

一直下一步安装 官网下载 安装完成

安装完成后会生成三个快捷方式:

  • Git Bash:类似Linux命令行(一般用这个)
  • Git CMD:类Windows的CMD命令行
  • Git GUI:使用GUI界面,但是没啥用

配置

git的配置都是以文件形式保存的,具体查看和位置如下

系统配置文件%Git%\etc\gitconfig

用户配置文件都保存在 %UserProFile%\.gitconfig

查看所有配置:git config -l

查看系统配置:git config --system --list

查看当前用户配置:git config --global --list

  • 首先进行配置用户名和邮箱(必须)
git config --global user.name "用户名"
git config --global user.email "邮箱"

三、基本理论

工作区域: 工作区(Workspace)、暂存目录(Stage/Index)、本地仓库(Repository)、远程仓库(Remote)

git add files git commit git push git pull git reset git checkout 工作目录 暂存区 本地仓库 远程仓库
  • Workspace:工作区,就是你平时存放项目代码的地方(相当于一个房间)
  • Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息(相当于把房间里准备搬去仓库的家具进行标记,当然不般的家具就不进行标记
  • Repository:仓库区或本地仓库,就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本(将标记的家具搬到家里仓库,这个仓库还能记录过去般了什么进来)
  • Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换(将家里仓库所有东西搬到超市仓库)

四、创建本地仓库

所谓创建本地仓库,可以看作在项目根目录中生成.git目录

有两种方式:1,创建新的仓库,2、克隆远程仓库

  1. 创建新的仓库,在项目文件夹根目录运行git初始化命令,会命令运行目录生成 .git文件

    git init
    
  2. 克隆远程项目,在命令运行目录中生成存放此项目的文件夹,.git文件夹在其中

    git clone [url]
    

五、文件操作

  1. 文件四种状态(了解):

    1. Untracked: 未跟踪, 此文件文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
    2. Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件
    3. Modified: 文件修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改 !
    4. Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified

    附:在IDEA中会通过文件颜色进行区分状态

  2. 查看文件状态

    #查看指定文件状态
    git status [filename]
    #查看所有文件状态
    git status
    #添加文件到暂存区(.表示添加当权目录所有文件)
    git add [filename]
    #将暂存区文件提交到本地仓库
    git commit -m "消息内容"
    
  3. 忽略文件

    有些文件不想让git提交,比如临时文件,编译目录等。

    在项目目录建立 .gitignore文件,在此文件中编写忽略规则:

    # 为注释
    *.txt     忽略.txt结尾文件(*可换成其他通配符)
    !lib.txt  lib.txr不忽略
    /temp     只忽略项目根目录下的temp目录/文件,不包括子目录里的temp目录/文件夹
    buikd/    忽略所有名为buikd文件/目录
    等...
    

六、配置SSH公钥

当需要提交代码到远程服务器时,最好配置SSH公钥

  1. 生成公钥:

    # git bash运行,-t指定加密方式,生成文件在“%userProFile%\.ssh目录下”
    ssh-keygen -t rsa
    
  2. 上一步生成的密钥在 %userProFile%\.ssh目录中,包括id_rsaid_rsa.pub两个文件,需要使用后面的id_rsa.pub公钥

  3. 登录Github或码云账户,复制id_rsa.pub的公钥,进行配置

七、创建远程仓库并提交

配置好SSH-key后进行操作

  1. 在远程仓库中新建仓库,并使用git clone把克隆到本地(主要就是要.git文件夹)
  2. 将克隆到本地的仓库文件复制到项目根目录
  3. 使用 git add .添加项目中所有文件
  4. 使用 git commit -m "消息内容"提交到本地仓库
  5. 使用 git push将本地仓库推到远程仓库

七、分支

分支就是多个人修改了项目,造成多个版本,每个版本可看作一个分支。

当分支进行合并时,若修改了同一个文件,就要手动选择保留谁的修改

分支一些命名:

  • master:主分支。最稳定版本
  • dev:开发用分支。
  • v1.0:项目某个版本

指令:

# 列出所有本地分支
git branch -a

# 列出所有远程分支
git branch -r

# 新建一个分支,但依然停留在当前分支
git branch [branch-name]

# 切换到该分支
git checkout [branch]
# 或
git switch [branch]

# 合并指定分支到当前分支(参数指定多种合并方式)
$ git merge [branch]

# 删除分支
$ git branch -d [branch-name]

# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

8、补充

码云提供的git大全:git大全

相关文章

本篇内容主要讲解“gitee如何上传代码”,感兴趣的朋友不妨来...
这篇“从gitee上下的代码如何用”文章的知识点大部分人都不太...
这篇文章主要介绍“gitee如何下载仓库里的项目”,在日常操作...
本篇内容主要讲解“怎么在Gitee上更新代码”,感兴趣的朋友不...
本文小编为大家详细介绍“怎么将工程托管到gitee”,内容详细...
这篇文章主要介绍了gitee中图片大小如何调整的相关知识,内容...