GitHub 教程
type
status
date
slug
summary
tags
category
icon
password
Property
Dec 1, 2022 06:50 AM
URL
笔记来源于
1. 版本控制
什么是版本控制 ?
就是版本迭代

上面的版本,很多,我们需要控制版本,如果直接像这样就非常的麻烦.
有什么用?
- 实现多人协同开发
- 记录文件的历史记录
- 统计工具量,等
常见的版本控制工具
- Git (最流行的)
- SVN
- CVS
- VSS
- TFS
- Visual Studio Online
1.1 本地版本控制

记录每次的版本更新,可以对每一次版本做一个快照,或是记录补丁文件,适合个人用,如 RCS.
1.2 集中版本控制

所有的版本放在服务器上有个问题,如果 Cetntral VSC Server 如果出问题,那么所有的东西就会没了,这样是不利于我们的文件保存的.而且是需要联网什么的,服务器一坏,所有东西就会没了 !!!
代表性产品: SNV, CVS, VSS
1.3 分布式版本控制 Git

每个人都有全部的代码,好处就是本地就可以看到所有版本信息.所有人都是一个版本,不会因为一个版本损坏,或者服务器损坏,导致不能工作.
Git 和 SVN 最主要的区别?
一个是分布式, 一个是集中管理
2. Git 历史

Linux 作者两周开发的!!
3. Git 的下载和安装
下面是 Git 官网, 去下载就行了.
下载慢可以找国内的镜像,
4. Git 的配置
4.1 Git 的相关配置
查看系统 config
git config --system --list
查看当前用户(global) 配置 ,
git config --global --list

这里是配置了 用户名 和 密码 ,告诉你是谁提交了.
所有的配置文件,都保存在本地,
4.2 Git 的配置
git config --global user.name "wxyhgk" # 名称 git config --global user.email 3123624718@qq.com # 邮箱
5. Git 的工作原理(核心)

- 工作目录 就是平时存放项目代码的地方
- 暂存区 临时存放你的改动,事实上它只是一个文件
- 本地历史 仓库区,就是安全存放数据的位置,这里有你提交所有版本的数据
- 远程仓库 托管代码的服务器,可以简单认为是你项目组中的一台电脑用于远程数据交换
6. Git 项目搭建
工作目录( workspace )一般就是你希望 Git 帮助你管理的文件夹, 可以是你的项目的目录, 也可以是一个空目录, 最好不要有中文.

6.1 本地仓库搭建
初始化当前项目
git init
6.2 克隆远程仓库
1. 克隆远程目录到本地,由于是将远程无服务器上的远程服务器上的仓库完全镜像一份到本地!
git clone github的链接
- 去 gitee 或者 GitHub 上克隆一个测试
7. Git 文件操作
7.1 文件四种状态
- Untracked 未跟踪,此文件在文件夹中,但没有加入到 git 库, 不参与版本控制.
通过
git add
状态变成 Staged
- Unmodify 文件已经入库,未修改,即版本库中的文件快照内容和文件夹中完全一致,这种类型的文件有两种去处
1. 如果被修改, 而变成 Modified
2. 如果使用
git rm
移出版本库, 则变成 Untracked 文件
- Modifiled 文件已修改,仅仅是修改,没有进行其他操作,这个这个文件也有两个去处
1. 通过
git add
可以进入暂存 staged 状态 2. 使用git checkout
则丢弃修改过,回到 Unmodify 状态,这个git checkout
即从库中取出文件, 覆盖当前修改!
- Staged 暂存状态,
1. 执行
git commit
则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为 Unmodify 状态, 2. 执行git reset HEAD filename
取消暂存,文件状态变为 Modified
7.2 查看文件状态
使用
# 查看指定文件状态 git status filename # 查看所有文件状态 git status # 添加所有文件到暂存区 git add . # 提交暂存区的内容到本地仓库 -m 提交信息 git commit -m "内容" # 将文件上传到远程仓库 # 以下命令将本地的 master 分支推送到 origin 主机的 master 分支。 git push origin master
7.3 忽略文件
有时候我们并不想将所有文件都提交上去, 某些文件我们不想提交上去, 比如以
.chk
结尾的文件我们不想提交上去怎么办呢?在主目录下建立一个
.gitignore
文件, 此文件可以填入以下规则*.txt # 忽略所有 .txt 结尾的文件 !lib.txt # lib.txt 除外 \temp. # 往上忽略, 仅忽略项目目录下的 TODO 文件, 不包括其他目录 temp build/ # 往下忽略,忽略 build/ 目录下的所有文件 doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
7.4 实战
1. 查看所有文件状态
git status

2. git add 状态变成Staged
# 通过 git add 状态变成 Staged git add . # 再次查看所有文件状态 git status

3. 提交到本地仓库
# 提交到本地仓库 git commit -m "ceshitijiao"

7.5 使用 GitHub 或 Gitee
- 注册 GitHub 或 Gitee 完善个人信息
- 设置本级 SSH 公钥,实现免密登录(重要步骤)
ssh-keygen
- 将公钥信息 public key 添加到 GitHub 账户中即可



8. Git 分支说明
8.1 概述
上面的都是个人操作, 不是协同, 我们需要使用分支来做, GitHub 分支比较重要, 也比较难.
下面这个 GitHub 项目就有很多分支, 可以看到

8.2 git 中常用的分支命令
# 列出所有本地分支 git branch # 列出所有远程分支 git branch -r # 新建一个分支, 但依旧停留在当前分支 git branch 分支名字 # 新建一个分支,并切换到该分支 git checkout -b 分支 # 合并分支到当前分支 git merge 分支 # 删除分支 git branch -d 分支名字 # 删除远程分支 git push origin --delete 分支名字 git branch -dr remote/branch
