一、 个人开发
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 log.png
git reflog//查看七位版本号
git reflog.png
-
版本回退
git reset -hard HEAD//重置到当前版本
git reset -hard HEAD^^//重置到上上个版本
git reset --hard HEAD2//重置到往上两个版本
git reset -hard 七位版本号//重置到指定版本
4. 其他相关知识
- 文件状态(git status)
- 版本号的含义:版本号是一个有SHA1生成的40位哈希值,这样做的目的是保证版本号的唯一;
- 颜色含义:
- 红色:代表被添加或者司改的文件没有被添加到暂缓区;
-
绿色:代表文件在暂缓区,等待提交;
git status.png
- 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












网友评论