1.git是什么?
是一种版本管理工具,方便程序的版本管理,不联网也可以使用,可以在任何时间任何地点,把文件的记录状态进行保存,可以在任何时间点对文件进行记录恢复。git操作和github操作其实就是项目推和拉的过程。
2.版本管理
版本管理就是记录文件的变化,便于查询特定条件状态下文件的内容,可以随时进行恢复
3.人为维护文档会出现什么问题
- 会导致文件过多,版本过于混乱
- 每次编辑的文档需要,手动复制,不方便
- 多个人对同一个文档编辑,文档容易混乱
4.git如何安装
安装地址
安装时选项默认,祝你好运安装成功
4-1.git的运作流程
分为git本地仓库,暂存区,工作区三部分
git本地仓库:就是用于存放提交的记录
暂存区:临时保存和被修改的文件
工作区:git可以操作的项目
git本地仓库 < 暂存区 < 工作区
4-2.git的使用
使用git前要给本机配置一个姓名和邮箱
- 首先给姓名
git config --global user.name 提交名
- 首先给邮箱
git config --global user.email 提交邮箱
- 查看git配置
git config --list 可以查看好多配置
重点:配置只执行一次,重复配置会重复修改
4-3.git提交方式 (只是把信息提交到本地仓库)
git init
初始化git仓库git status
查看代码是否到暂存区git add .
推送到暂存区git commit -m. 提交说明
从暂存区推送的本地仓库
4-4.撤销
在开发项目中可能要把项目恢复到以前具体的地方
git checkout 文件名
: 恢复到上一次代码提交的状态 暂存区恢复到工作区
git rm --cached 文件名
:把暂存区提交的文件删除
git rest --hard commitid
:从本地仓库恢复到工作区 commitid就是你先git log查看提交的步骤,复制其id进行恢复
5.git进阶
5-1.分支
分支就是在当前工作项目中创建一个副本
使用分支的原因就是:我们从主分支上分离出来,创建一个副分支编程,以防万一影响到主分支。
5-2.分支的分类
1.主分支(master/main):第一次git仓库提交时自动产生的默认分支
以前默认分支是master,2020年默认分支更新后为main
2.开发分支(develop):开发分支,基于主分支master/main上创建的分支
3.功能分支(feature):开发具体的分支,用于开发具体的功能时创建的分支
5-2.分支的具体指令
git branch
:查看当前所有分支
git branch 分支名称
:创建分支
git checkout 分支名称
:切换分支
git merge 分支名称
:必须站在主分支上合并副分支
git branch -d 分支名称
:删除分支 副分支被合并后才允许被删除(-D)强制删除
5-2.临时保存所写的项目
使用原因:在工作中,因某些原因临时转向其他项目时,需要一个干净的工作环境,是使用。
使用场景:临时切换分支
git stash
临时存储
git stash pop
恢复改动之前
6.github?
在版本管理工具中,有90%的操作都是在本地仓库中运作,其中的运作包含:暂存,提交,状态或历史记录等。在本地仓库中需要给你的团队设置一下共享时,远程仓库的设置才变的有意义,利用这个远程仓库来与同团队内的成员一起开发项目。
6-1.注册
- 首先访问github官网进行sign up进行注册
6-2.多人开发的协作
假设有成员a和b,在a的计算机中创建一个本地仓库,a再向github中创建远程仓库,
a在从本地仓库推往到远程仓库,b从远程仓库克隆到本地仓库进行开发,b再从本地仓库推送到远程仓库,a再从远程仓库拉取到本地仓库。
6-2.多人开发的协作
1.创建仓库
2.从本地仓库推送的远程仓库
-
使用前必须保证远程仓库含有内容
git push git@github.com:xuhaoxuan15/02a.git 分支名
-
git remote add 仓库名 git@github.com:xuhaoxuan15/02a.git 分支名
-
git push 仓库名 分支名
-
git push -u 仓库名 分支名
-u是为了记住推送地址,以便下次推送方便 git push -
-f 是来强制推送
-
git push -u -f 地址 分支名
-
也可以使用 git pull 仓库名 分支名 --allow-unrelated-histories
6-3.拉取操作
6-3-1.克隆仓库
git clone 地址
:克隆远程仓库的数据到本地
6-3-2.远程仓库拉取最新的数据
git pull 仓库地址 分支名
拉取最新数据
6-3-2.邀请他人来协同开发项目
进入github仓库 点击settings 点击manage access 输入密码 输入邀请人员的账号
发送请求 被邀请人接收邀请 编写代码并提交
6-3-3.解决冲突
在多人同时开发一个项目时,如果两个人修改了同一个文件的同一个地方,就会发生冲突。冲突需要人为解决.
6-3-4.跨团队协作
向别人仓库提交代码
7. 程序员 C fork仓库
8. 程序员 C 将仓库克隆在本地进行修改
9. 程序员 C 将仓库推送到远程 (git push 远程仓库地址 master)
10. 程序员 C 发起pull reqest
11. 点击pull requests—>点击 new pull request-–>create pull
request-—>输入推送描述信息–>create pull request
12. 原仓库作者审核 (与提交者对话)
13. 原仓库作者合并代码 (merge pull request)
7.ssh免密登录
ssh为了方便提交代码不需要输入账号密码
1.生成秘钥:ssh-keygen
2.秘钥存储目录:C:\Users\用户.ssh
3.公钥名称:id_rsa.pub (放到github服务器中)
4.私钥名称:id_rsa (放在自己电脑上)
5.添加远程仓库,起别名:origin_ssh
6.git remote add origin_ssh git@github.com:teach-tian/ccc.git
7.向远程仓库origin_ssh推送,无需密码。
8.git push origin_ssh master
7.git忽略清单
需要被git管理的文件名字添加到此文件中,在执行git命令的时候,git就会忽略这些文件。git忽略清单文件名称:.gitignore
将工作目录中的文件全部添加到暂存区:git add .
8.给仓库加详细信息
创建 README.md(使用markdow 语法)
9.linux命令
1. ls 查看文件/目录
2. pwd 显示当前的工作目录
3. cd 进入目录
[例子]:
cd 回到注册进入时的目录
cd /tmp 进入 /tmp 目录
cd ../ 进入上级目录
4. mkdir 创建目录
5. rmdir 删除目录
6. cat 显示文件至标准输出
7.cp 拷贝
例子
cp fi le1 file2 将文件 file1 拷贝到文件 file2
8. mv 移动
- i 在覆盖已存在文件时作提示,若回答 y 则覆盖,其他则中止
[例子]:
mv file1 file2 将文件 file1 改名为 file2
mv file1 file2 /tmp 将文件 file1 和文件 file2 移动到目录 /tmp 下
9. touch 创建文件
10. vi 编辑
i 插入 编辑内容
esc 退出编辑
:wq 保存并退出
10.git与svn的区别
git是分布式版本控制工具,免费且好用可以运用到github上
svb是集中式版本控制工具,收费
两者区别:集中式就是,编写代码时用自己的电脑提取中央服务器的代码,编写完成后再推送到中央服务器。
集中式的缺点就是必须联网才能运作
分布式:相比于集中式不存在中央服务器,因为每个人的电脑都是一个中央服务器,这样不需要联网。推送与拉取时需要,大家工作时进行交互修改相比于svn方便。
git总的来说是分支管理
总结:
在创建本地副分支,副分支必须同步到远程仓库中。
远程仓库可视化创建分支,也必须要同步到本地仓库。