git基本使用
1.介绍
1.1、git
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。[1]也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
官网下载:git
1.2、对比其他版本软件
SVN优缺点
-
优点:
-
集中式管理系统
-
管理方便,逻辑明确
-
易于管理,集中式服务器更能保证安全性
-
代码一致性非常高
-
适合开发人数不多的项目开发
-
-
缺点:
-
服务器压力太大,数据库容量暴增
-
如果不能连接到服务器上,基本上不可以工作,如果服务器不能连接上,就不能提交,还原,对比等等
-
不适合开源开发
-
git优缺点
-
优点:
-
适合分布式开发,强调个体
-
公共服务器压力和数据量都不会太大
-
速度快,灵活
-
任意两个开发者之间可以很容易的解决冲突
-
离线工作
-
-
缺点:
-
学习周期相对而言比较长
-
代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息
-
2、安装git软件
可以在常见的操作系统安装。
linux、mac 自带了git命令行,直接使用即可。
windows 需要手动安装
①双击打开安装包
3、git基本使用
3.0、git使用配置
安装完git之后,需要在git配置用户名和邮箱,理论上是可以随便填写的。
实际在生产环境中,需要根据分配给你的账号里的用户名和邮箱填写。方便统计代码提交量。
# 查看 git config --global user.name git config --global user.email # 设置 git config --global user.name *** git config --global user.email ***t@qq.com
3.1、git仓库初始化
仓库一般以一个项目为基准。
仓库存储代码的地方,记录代码版本。
哪里是需要代码管理的地方,在哪里执行。
目录结构内容不要太多,在子级目录中不要存在多级的.git文件夹
git init
3.2、本地版本提交
工作区 当前操作的目录
暂存区 需要进行版本提交的临时存储区
版本库 存储了版本信息
# 查看当前目录的状态 git status # 工作区添加文件到暂存区 git add . # 从暂存区回撤到工作区 git rm --cached xxx # 暂存区提交版本库 git commit -m "注释" # 查看版本库版本 git log
可能遇到的问题点:
vim 命令模式 插入模式 末行模式
在git commit时,忘记了加-m参数
修改完毕之后,按esc键,退出插入模式,进入命令模式,再同时按shift+:,进入末行模式。
输入wq,保存退出
4、git远程仓库使用
为了能够方便进行代码的传递和共享,需要使用git远程仓库。
远程仓库必须要有一个仓库地址
国外仓库:github、gitlab
国内仓库:gitee
、coding...
https://gitee.com/
注册一个gitee的账号,并登录
4.1、创建远程仓库
# 添加远程仓库地址 git remote add origin https://gitee.com/liuxiangxiangaqua/joint-projects # 查看远程仓库地址 git remote -v # 删除远程地址 git remote remove origin
4.2、上传本地仓库到远程
# 推送远程并设置分支为主分支 后续推送直接git push git push -u origin "master"
执行推送命令后,需要输入gitee的账号和密码
4.3、开源仓库
企业中的代码,不要进行开源,可以设置哪些账号可以查看和使用
4.4、获取远程仓库
克隆:第一次完整的获取到所有的仓库信息 git clone xxxx
拉取:在原有基础之后,获取变更后的信息 git pull
①克隆远程项目
git clone https://gitee.com/liuxiangxiangaqua/joint-projects
②拉取远程代码
git pull
5、git对比操作
对比不同版本或者不同工作区域代码的差别
①工作区与暂存区的差异对比
git diff xxx
②暂存区与版本库的差异对比
git diff --cached xxxx git diff --staged xxxx
③工作区与版本库的差异对比
git diff master
6、git回撤操作
①暂存区回退到工作区 发现提交错了,退回一步
git reset HEAD 文件名 # 撤销上一个git add . 操作所有的文件 git reset HEAD
②工作区撤销回上一次的版本库
注意:该操作 如果没有提交版本库 不存在版本库的中代码就会被全部删除 不可逆
git checkout --文件名
7、git恢复操作
恢复文件操作 恢复到对应版本
git checkout (commit id) <指定文件>
恢复版本操作
git reset --hard (commit id) git reset --hard HEAD^ (返回上一个版本) git reset --hard HEAD~<num> (返回上几个版本) #显示操作记录,可以回到当前版本 > git reflog
8、分支使用 多人协作开发
分支是一个副本,操作分支,不会影响主要分支代码。当需要做一些修改较多,测试性操作。就可以开一个新分支,完完成测试之后,再合并主要分支。
# 查看当前所在分支 及其所有分支 *代表当前所在分支 git branch # 查看所有分支及其远程分支 -a all git branch -a # 创建新分支 基于当前分支 git branch 新分支名称 # 切换分支 git checkout 分支名称 # 创建分支并切换到新分支 git checkout -b 分支名称 # 合并分支 在当前分支合并其他分支 git merge 合并分支名称 # 删除分支 git branch -d 分支名称
9、远程仓库共享协作开发
为了方便多人协作开发,使用线上远程操作具有操作权限。添加仓库成员。
10、冲突解决
提交之前先拉取,拉取出现冲突根据提示解决冲突,然后再提交。
git pull => git push
注意如果冲突代码,自己无法确定保留哪一份,需要和对应的开发者去对接。
11、开发使用技巧
当前正在开发新的功能,在dev分支开发。突然一个需求,修复一个线上bug。
问题:新开发的功能,还未完成,无法提交。bug修复还必须现在进行,导致现在没写完的代码,无处保存
可以通过git stash 保存未提交的代码
# 保存未提交代码 git stash # 获取到之前未提交的代码 git stash pop
更多推荐
所有评论(0)