目录
git使用教程(https://blog.csdn.net/JackLiu16/article/details/79751900)
1.git本地仓库创建和一些基本概念
- 使用git init 命令创建本地仓库
- 仓库区和工作区
.git文件夹为仓库区,类似于一个数据库存储着每一次提交的变化
.git所在目录称为工作区,我们在这里创建项目,和其他文件 - 使用git add <文件名> 可以把文件添加到暂存区,暂存区存储将要被提交的文件变化
git add . //把所有修改的文件存到暂存区中
- 使用commit命令提交暂存区存储的变化并生成一个新的版本
git commit -m "创建a文件"
--后面的 -m "创建a文件" 是创建说明
- 使用git status命令查看状态,git log命令查看日志
先在服务器创建仓库,然后本地clone服务器仓库,本地修改,修改完成后提交到本地,,再把本地的变化推送到服务端
2.Git服务器和远程仓库创建
- 可以搭建,自己搭建git服务器
- 免费服务器
- github.com 全球最大开源项目托管平台
- 2.gitee.com 国内知名开源项目托管平台 码云
- 注册gitee账号,并创建仓库
3.git克隆
- https方式
第一次克隆需要我们输入账号密码 - ssh方式
ssh是一种开源非对称加密通信协议,
ssh只是一种协议,有开源实现也有商业实现,git默认使用开源实现的openssh
ssh通信需要一对密钥(公和私一对),私钥留在自己电脑上,公钥给其他的电脑
使用GitGUI生成密钥,并把公钥放在服务器上
安装完git第一次克隆会请求是否允许使用ssh,需要我们输入一个"yes".或者点击ok
4.添加,提交,推送,拉取
- 添加 add (如果使用使用小乌龟 勾选即为add)
- 提交 commit
提交只提交到本地仓库,需要推送才会到把变化更新到服务器仓库 - 推送 push
如果服务器版本比我们新则不会推送不成功,需要先拉取 - 拉取 pull
拉取时应确保工作区整洁(先提交本地再拉取服务器的变化)
5.分支创建与合并
- master是仓库的主分,为了避免开发过程中程序员之间相互影响,我们一般选择创建一个新的分支来
开发新功能 - 创建分支
- 切换分支
- 合并分支
6.冲突
- 冲突如何产生的
两个分支修改了同一个文件,合并的时候会发生冲突 - 如何解决冲突
协商修改冲突位置,并重新提交 - 如何减少冲突
先pull在修改
确保自己正在修改的文件是最新版本的
各自开发各自的模块,如果要修改公共文件,最好先确认有没有人正在修改 - 不要擅自修改同事的代码
7.忽略文件
.gitignore
使用 touch .gitignore 命令来创建一个忽略文件
#按文件名忽略文件夹
文件夹名/ ([Aa]忽略大小写)
#按路径忽略文件夹
/文件夹名(路径)/
#忽略文件
*.后缀名
#反忽略,对文件和文件夹都有效
!*.文件名
!A/
空文件夹会被自动忽略
8.版本回退
在版本日志界面选择一个节点,使用重置(Reset)命令
Head 当前分支的引用指针(重置就是移动Head这个指针)
Index 就是缓存区(被Add的,也可以说是将要提交的,文件的快照)
工作区 .git所在的目录以及子目录
9.子模块
子模块就是一个git仓库包含其他git仓库
当我们需要把其他开源项目作为本项目的一个库,并可可以随时拉取更新的时候
或者我们的项目需要分模块独立开发的时候可以使用子模块
克隆有子模块的仓库,需要选择递归
10.issue和request
issue 讨论
PullRequest 拉取请求,为项目贡献代码,请求项目管理者合并自己的代码
11. '.gitkeep'
- 当文件夹下没有文件时,git会忽略此文件夹
- 在不想被忽略的空文件夹中创建一个.gitkeep文件就可以让文件夹不被忽略了
git非常灵活可以根据自己的需要构思出来不同的工作流(团队开发的方式和流程)