【Git笔记】基本操作、团队协作及SSH秘钥配置

Git笔记

一、Git概述

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。

官网:https://git-scm.com/

1、架构

截屏2020-10-11 上午11.14.57

文件转移过程:工作区->暂存区->master分支。文件移动至分支后形成正式的版本,暂存区内文件清空。

工作区:开发者重点工作区域,在此创建项目。

版本库(仓库):工作区中有一个隐藏目录.git,这个目录不属于工作区,是git管理的所有内容。

暂存区:直接接收工作区来的文件,在合适的时候commit至分支形成正式版本。

分支:版本库中包含若干分支,提交的文件存储在分支中。

2、仓库

  • 对应的就是一个目录,这个目录中的所有文件被git管理起来。
  • 以后会将一个项目的根目录,作为仓库。
  • 仓库中的每个文件的改动都由git跟踪。
# 新建仓库
# 选择一个目录执行指令
git init

自此生成一个隐藏的.git文件(包含暂存区和分支)。

二、Git环境搭建

官网下载安装后,打开cmd,执行:

git config --global user.name "Your Name" #用户名
git config --global user.email "YourEmail@example.com" #用户名
#查看信息
git config -1
#查看Git版本
git version

以上信息将记录在每次的代码提交中。

三、Git基本操作

1、本地

指令功能
git status查看工作区中文件的状态
git add .将当前工作区所有文件add至暂存区
git commit -m “add two files”(必填项)把暂存中的内容放到分支上,“add two files”为版本描述信息

2、远程仓库

截屏2020-10-11 下午2.05.58
# 链接
git remote add origin(标识名) 远程地址
git remote -v

# 上传至仓库
git push 标识名 分支名 

# 克隆远程仓库(初时构建本地仓库)
git clone http://...(仓库地址)

# 更新后获取最新...
git pull 标识名 分支名

四、Git分支

1、简介

分支是一个个版本最终存储的位置。

分支是一条时间线,每次git commit形成一个个版本,一个个版本依次存储在分支的一个个提交点上。

截屏2020-10-11 下午2.40.03

2、分支基操

git branch # 查看当前仓库的分支,默认只有master分支

执行git commit时,默认是在master分支上保存的版本。

当代码确实没有问题时,才会将开发分支上成熟的代码版本添加到master分支上。

既保证开发过程中,可以及时记录版本,又保证master分支上每个提交点都是稳健版本。

git branch dev # 创建名为“dev”的分支
git checkout dev # 切换至dev分支
截屏2020-10-11 下午3.13.14

注意:仓库目录下只显示当前分支的内容!!!

3、分支细节

新建分支即为新建一个指针。

新分支指针和当前分支指向同一个提交点。

新分支包含的提交点:第一个提交点到分支指针指向的提交点。

截屏2020-10-11 下午3.23.50 截屏2020-10-11 下午3.28.19

4、分支提交日志

git log --oneline # 查看当前分支的提交点(简易)
git log # 完整日志

5、分支合并

git merge 分支a # 将分支a合并至当前分支
1)快速合并

若分支A当前的修改,是完全基于分支B的修改而来的,则B分支合并A分支。(少,效果最好)

截屏2020-10-11 下午3.49.41
2)三方合并

两个分支的最新快照以及二者最近的共同祖先进行三方合并,合并的结果是生成一个新的快照。

截屏2020-10-11 下午3.51.24

五、使用SSH-KEY

git使用指令git push origin master报错remote: Invalid username or password. fatal: Authentication failed for

在使用该方式前确保自己没有使用git clone命令克隆仓库,如有使用,则删除原仓库,使用SSH链接重新克隆仓库。

  1. 在终端中输入以下命令

    ssh-keygen -t rsa -C 'xieyhxxx@163.com'
    
    • 密钥类型可以用 -t 选项指定。如果没有指定则默认生成用于SSH-2的RSA密钥。这里使用的是rsa。

    • 同时在密钥中有一个注释字段,用-C来指定所指定的注释,可以方便用户标识这个密钥,指出密钥的用途或其他有用的信息。所以在这里输入自己的邮箱或者其他都行。截屏2021-05-20 下午12.48.46

  2. 终端输入

    cat /Users/xie.y.h/.ssh/id_rsa.pub		# 秘钥存储位置,见上一步
    

    查看秘钥

    截屏2021-05-20 下午12.52.53
  3. 将密钥复制,粘贴到第红色框中截屏2021-05-20 下午12.55.16
    到此即完成配置

  4. 测试SSH连接:ssh -T git@github.com

    截屏2021-05-20 下午12.56.39

六、团队合作

手把手教程:利用GitHub团队合作项目流程

1、克隆项目到本地

推荐使用ssh协议,用HTTP协议有时会出问题。

克隆

2、和团队项目保持同步

  1. 首先查看有没有设置upstream,使用 git remote -v 命令来查看。如下图①
    截屏2021-05-20 下午12.34.28

  2. 如果没有显示upstream,则使用 git remote add upstream 团队项目地址 命令。如上图②

  3. 接着再次使用 git remote -v ,如果如上图③,显示出了upstream,那么就设置好了

  4. 开始同步。首先执行 git fetch upstream 获取团队项目最新版本。如下图①
    截屏2021-05-20 下午12.35.24

  5. 此时并没有把最新版本合并到你本地的分支上,因此还需要一步。如上图②,当前分支是dev分支,执行 git merge upstream/dev 命令后,会将源分支(upstream/dev)合并到当前分支(dev)。

    如果你是在本地的master分支上开发,那么在使用该命令前,先切换到master分支。
    merge的时候,有可能碰到冲突。需要解决冲突才能继续下面的操作。
    截屏2021-05-20 下午12.58.11

3、push修改到自己的项目上

解决冲突后,就可以使用 git push 命令将本地的修改同步到自己的GitHub仓库上了。

注意,在当前所在分支使用push,会push到与这个分支相关联的远程仓库分支。这里dev分支与origin/dev关联,因此push到GitHub上的dev分支。

截屏2021-05-20 下午12.39.50
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值