一、 个人开发
1. 初始化一个本地仓库
- 命令:
git init
- 作用:管理本地代码,修改上传,版本回退。
2. 配置仓库
- 命令:
git config user.name "lch"
作用:告诉git你是谁,可以追踪修改记录
- 命令:
git config user.email "lch@qq.com"
作用:告诉git怎么联系你,多人合作开发时,沟通交流 - 命令:
git config -l
作用:查看配置信息,也可以通过打开.git -> config查看
3. 操作演练
- 新建文件并提交
touch main.c
//创建文件
git add .
//添加文件到暂缓区
git commit -m "注释"
//提交到本地仓库并注释
-
修改文件并提交
git add .
//添加修改文件到暂缓区
git commit -m "注释"
//提交到本地仓库并添加注释 -
删除文件并提交
git rm main.c
//删除指定文件,main.c为文件名
git commit -m "注释"
//提交到本地仓库并注释 -
日志查看
git log
//查看日志
git reflog
//查看七位版本号
-
版本回退
git reset -hard HEAD
//重置到当前版本
git reset -hard HEAD^^
//重置到上上个版本
git reset --hard HEAD2
//重置到往上两个版本
git reset -hard 七位版本号
//重置到指定版本
4. 其他相关知识
- 文件状态(git status)
- 版本号的含义:版本号是一个有SHA1生成的40位哈希值,这样做的目的是保证版本号的唯一;
- 颜色含义:
- 红色:代表被添加或者司改的文件没有被添加到暂缓区;
-
绿色:代表文件在暂缓区,等待提交;
- vim编辑器的使用
- 命令模式:等待编辑命令输入;所有输入的内容都被当做命令来使用;
- 插入模式:输入的所有内容都被显示,并被当做文件内容处理;按Esc键可以退出插入模式进入命令行模式
- 命令行模式:执行待定命令(保存文件并退出vim
:wq
;强制退出q!
)
- 日志查看配置
git config alias.st "status"
git config alias.ci "commit -m"
- --global的作用
- 可以进行全局配置,所有版本库共享此配置,个人电脑上建议使用全局配置
二、团队开发
注:团队开发必须有一个共享库,这样成员之间才可以进行写作开发。
0. 共享库的分类
- 本地共享库(只能在本地面对面的操作)
- 电脑文件夹/U盘/移动硬盘;
- 远程共享库(可以通过网络远程操作)
1. 演示多人开发
- 搭建本地共享库:
git init --bare
//搭建本地共享库
- 创建dvOne、dvTwo文件夹(用来代表两个不同的开发者本地仓库);
- 分别进入到两个文件夹从共享库clone项目到本地:
git clone 共享仓库地址
- 新增文件的同步:
-
touch person.h
//创建文件person.h -
git add .
//添加到暂缓区 -
git commit -m "创建person.h"
//提交到本地仓库 -
git push
//提交到本地共享库 -
git pull
//开发者二从共享库同步文件
- 修改文件的同步:
-
git add .
//添加到暂缓区 -
git commit -m "注释"
//提交到本地仓库 -
git push
//提交到共享库 -
git pull
//开发者二从共享库同步文件
- 删除文件的同步
-
git rm 文件名
//删除指定文件 -
git commit -m "注释"
//注:因为通过命令行删除的文件会自动添加到暂缓区,所以可以省略git add .
这一步。 -
git push
//提交到共享库 -
git pull
//开发者二从共享库同步文件
- 冲突的解决方法
-
git pull
//重新同步,然后打开冲突的文件,删除垃圾代码。
- 手动添加忽略文件
-
touch .gitignore
//创建忽略文件 -
open .gitignore
//打开忽略文件进行编辑 -
git add .
//添加到暂缓区 -
git commit -m ""
//提交到本地仓库
附:.gitignore文件的配置规则
- 备注:
- 在真实开发中,配置.gitignore文件一般都是去github上搜索gitignore;
- 报错:fetch first //代表当前文件已过期,需要从共享库更新,此时应该执行
git pull
操作
三、Git版本备份/分支管理
注:在git中不是通过拷贝代码来解决和备份和开启分支的,而是通过打标签控制HEAD指向,来回到任一版本
-
当开发完成一个版本时可以同过以下命令备份版本:
-
git tag -a v1.0 -m "标记1.0版本"
//给版本1.0打标签 -
git push origin v1.0
//提交到共享库
-
-
当发现之前的版本存在bug,需要获取版本来进行修复时:
-
git checkout v1.0 -b v1.0fixbug
//根据版本v1.0建立新分支v1.0fixbug并切换到此分支
-
git add
. //修复之后提交到本地仓库,注意此处提交到的是HEAD所直向的分支-v1.0fixbug git commit -m "修复bug"
-
git tag -a v1.1 -m "1.1版本备份"
//打标签上传到共享库 git push origin v1.1
-
git push origin v1.0fixbug
//最后将整个分支上传到共享库
-
-
修复完成后,要把修复的版本合并到当前版本时:
- 从共享库更新代码到本地库
git pull
- 查看当前服务器存在哪些分支
git barnch -r
- 切换到master分支后,将v1.0fixbug分支合并过来
-
git checkout master
//切换到master分支后,合并修复的分支 git merge origin/v1.0fixbug -m "合并分支"
- 合并完成后提交到共享库
git add .
git commit -m "合并分支"
git push
- 合并完成后可以删除共享库的分支
git branch -r -d origin/v1.0fixbug
- 查看当前版本标签
git tag