Git和GitHub:开启你的开源之旅(入门级干货教程)

Git及GitHub使用教程

Git部分

Git概述

Git是一个免费的开源的分布式版本控制系统

  1. 版本控制系统

版本控制系统是一种记录文件历史修改记录,以便将来查阅特定版本修订情况的系统。

  1. 集中式版本控制工具 VS 分布式版本控制工具

集中式版本控制工具

  1. 特点
    • 所有文件版本和历史记录存储在中央服务器上。
    • 开发者通过客户端从中央服务器检出最新版本的代码,并将更改推送回服务器。
  2. 优势
    • 中央化的存储使得管理项目的权限控制更容易。
    • 管理员可以更轻松地控制项目的状态和权限。
    • 开发者只需了解中央服务器的概念,学习曲线相对较低。
  3. 缺点
    • 协作过程中对中央服务器的依赖性较高,服务器故障可能导致开发中断。
    • 因为所有操作都涉及到与中央服务器的交互,对网络连接的要求较高。

分布式版本控制工具

  1. 特点

    • 每个开发者都有完整的项目副本(包括代码库和版本历史记录)。
    • 开发者可以在本地进行提交、分支、合并等操作,而不必依赖于中央服务器。
  2. 优势

    • 本地操作速度快,不需要频繁与中央服务器交互,即使在没有网络连接的情况下也能进行大部分操作。
    • 分布式架构更适合团队分散、地理位置分布广泛的开发团队。
    • 更灵活的分支和合并机制,支持并行开发和多个工作流程。
  3. 缺点

    • 对于一些新手来说,理解分布式版本控制系统的概念和工作流程可能有一定的学习曲线。
    • 由于每个开发者都有完整的项目副本,可能会占用更多的存储空间。
  4. 分区

工作区(git add)➡暂存区(git commit)➡本地库(生成历史版本 git push)➡远程库

  1. 代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般简称为“远程库”。

局域网:GitLab

互联网:GitHub、Gitee(码云)

Git常用命令

常用操作含义
git config --global user.name 用户名设置用户签名
git config --global user.email 邮箱地址设置用户签名
git config --list查看git配置信息
git init初始化本地库
git status查看本地库状态
git add 文件名添加到暂存区
git add .添加当前目录下所有的文件到暂存区
git commit -m “日志信息” 文件名提交到本地库
git reflog查看历史记录
git log查看完整的记录
git reset --hard 版本号版本穿梭
cat 文件名查看文件内容
  1. 步骤

设置用户签名

初始化本地库

添加暂存区

提交到本地库

  1. git内部vim的操作

ps: vim是文本编辑器,类似于windows的记事本,它有两个模式,一个是编辑(插入)模式,一个是命令模式

操作目的
vim 文件名进入
i编辑模式
esc命令模式
:w + 回车保存(命令模式)
:wq 或者 ZZ保存并退出(命令模式)
:q!放弃修改并退出vim(命令模式)
:e!放弃修改并返回命令模式(命令模式)

分支

  1. 常用操作
操作含义
git branch 名称创建分支
git branch -b 名称创建分支,并切换到新创建的分支
git branch -v查看所有的分支
git checkout 分支名切换分支
git merge 分支名A将分支A
git branch -m 名称A 名称B将分支A的名字修改为B
git branch -m 名称A将当前分支改名为名称A
  1. 合并与冲突

冲突的产生:在要合并的两个分支中修改了相同的文件,然后分别添加到暂存区、提交到本地库之后在进行合并就会产生冲突。以下是冲突产生的一个例子:

在这里插入图片描述

冲突的解决方法:

(1) 首先打开文件(vim 文件名)
在这里插入图片描述

有三行特殊符号
<<<<<< HEAD
内容一
=======
内容二
>>>>>>> 分支A的名称

/**
其中,HEAD 指向的是当前的分支
内容一部分是当前分支修改的内容
内容二部分是分支A修改的内容
*/

(2) 切换到编辑模式,手动修改最终要保留的内容,最后再删除那三行特殊符号,然后保存并退出vim

(3)将文件添加到暂存区(git add 文件名)

(4)将文件提交到本地库(git commit -m “文件描述”)!!!注意此处不再添加文件名

团队协作

团队内协作

在这里插入图片描述

跨团队协作

在这里插入图片描述

GitHub部分

远程库操作

操作含义
git remote -v查看当前所有远程地址的别名
git remote add 别名 远程库地址为远程库起别名
git push 别名/远程库地址 分支A推送本地分支A上的内容到这个别名对应的远程仓库的分支A(如果远程库没有A分支,则重新创建)
git push 别名/远程库地址 分支A:分支B推送本地仓库的分支A到远程仓库的分支B
git clone 远程地址将远程库的内容克隆到本地
git pull 远程库地址别名 远程分支A将远程库分支A的最先内容拉取下来后直接与本地当前分支合并
注意点:
  1. 远程库一般与本地库的名称一致
  2. 远程库别名一般与远程库名一致
  3. clone操作的三个小步骤:(1)拉取代码; (2)初始化本地库; (3)初始化分支名(默认为origin)
  4. 有多个账号在进行push、pull的时候,要去**“凭据管理器”**将其他的账号凭据删除才能进行

团队内协作

clone到本地库,然后修改完善,add到暂存区、commit到本地库、push到远程库(需要权限,如下)

邀请成员协作步骤:

settings -> manage access -> invite a collaborator -> 输入对方账号 -> 产生邀请函 -> 复制邀请函 -> 浏览器复制链接 -> 同意推送

-> 得到push权限

跨团队协作

协作步骤:

方法一:同团队协作

方法二:进入到项目 -> fork -> 在线编辑完成 -> pull request -> new pull reuest -> creat pull request -> 对方审核 -> merge pull request -> confirm merge

  • 30
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值