GIT常用命令及应用场景
Git为什么要去管理代码? 我们就会通过很多工具进行代码管理。 包括可以查看历史记录,可以解决代码冲突问题。我们在公司中管理代码的工具都有哪些???git(14年左右出现)SVN(小乌龟)SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。1.版本的概念(1)初指一种书籍经
Git
为什么要去管理代码? 我们就会通过很多工具进行代码管理。 包括可以查看历史记录,可以解决代码冲突问题。 我们在公司中管理代码的工具都有哪些??? git(14年左右出现) SVN(小乌龟) SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。
1.版本的概念
(1)初指一种书籍经过多次传抄、刻印或以其他方式而形成的各种不同本子。随着时代的发展,版本也开始应用于影视、软件等事物上,形容事物相同但介绍方法等不同的两个事物。
(2)软件版本编号制定是指为软件设置版本号码的方式。通常,版本号码会以数字订定。 1.1.1=>大版本迭代 就是2.0.1
(3)软件名称后面经常有一些英文和数字,如:CTS3.3.5、QQ 2021 Beta,这些都是软件的版本标志,通过它,我们可以对软件的类型有所了解。
各版本的时间轴演变,每一次版本的改变,都会有功能的改变。
2.管理版本
(1) 传统管理方式
问题:传统管理方式造成了本地电脑上有很多相同的文件,不容易维护,造成了非常混乱的局面。
(2) 版本控制方式
介绍:
好处:使用版本控制以后,只需在本地保存一份,各个版本由版本控制软件来进行管理,常见的版本控制软件有git和svn。
3.git介绍
(1)定义 :
Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。
(2)特点:
项目越大越复杂,协同开发者越多,越能体现出Git 的高性能和高可用性!并且git有3个区域
(3)三个区域
- 工作区
就是本地电脑的各个盘符
- 暂存区
git自己的隐藏某一个文件夹
- 仓库区
远程仓库地址(码云/github)
4.安装步骤
(1)下载安装
注意1:下一步下一步(next),尽量开发相关的软件都安装到默认盘符,不要去修改,更不要放到中文文件夹以及中文名字
window系统。鼠标右键,git Bash Here,默认打开git终端
注意2:mac 下载安装好后,用自带的终端去使用git即可
(2)配置用户信息
注册账号:
码云或者是github通过邮箱和手机号进行注册。教学过程中用的是码云。不用担心操作命令都是一样的。
描述:安装完Git 之后,需要设置自己的用户名和邮件地址。进行管理的时候,Git 需要使用这些基本信息,来记录是谁对项目进行了操作
配置命令:
git config --global user.name xxx git config --global user.email xxx
以上的配置命令既是添加也是修改
验证是否配置成功
- 输入命令: git config --list
- 在 c:/用户/用户名 下有 .gitconfig文件,存放的就是git配置的用户信息
特殊说明:
安装完git后,只需要配置一次用户信息,后期不需要再配置
5.Git操作步骤
(1)新项目git管理步骤
第一、在码云中创建一个仓库(新建仓库)
给当前仓库设置一个名字
给当前仓库设置一个描述
给当前仓库设置是否开源(建议开源)
之后不需要选择任何,直接创建
第二、找到你工作区,右键 git bash here
初始化 : git init
第三、把本地的内容添加到暂缓区
. 或者 *代表所有
文件名 git add index.html
一个类型 git add *.txt
git add .
第四、加备注
commit 提交
git commit -m 'this is a new project'
第五、链接远程仓库
git remote add origin 你自己的仓库地址
第六、把内容推送到远程仓库
master 默认分支
git push -u origin "master"
总结: 1、不认真 不仔细 单词拼错 add. 这是不错 add .这是对了 2、忘记设置全局用户名和邮箱 git config --global user.name xxx git config --global user.email xxx 3、电脑的凭据管理(管理电脑自身系统的用户名密码) 第一次上传会出现弹框,是让你输入用户名有密码,是码云的用户名密码
(2) 项目修改或者创建步骤
一、右键 git bash here
二、git add 文件/文件夹/全部
三、git commit -m '记录'
四、git push
特殊说明
- 一个项目只需要在最开始初始化一次,后期不需要再初始化
- .git 文件夹,默认是隐藏的,不需要手动修改,通过git命令修改,里边是版本仓库
(3)如何在公司中下载上传代码(非新项目)
- 先把远程仓库的内容克隆到本地
git clone 远程仓库地址(项目地址)
- 在已提交之前一定要先更新!!!!
git pull //拉取
- 上传
git add 文件/文件夹/全部 git commit -m '记录' git push //推送
6.Git命令
init 初始化
git init
add 提交到暂存区
git add . 把项目目录下所有文件都提交到暂存区 git add 文件名 把指定的文件提交到暂存区 git * 把项目目录下所有文件都提交到暂存区 git *.html 一类文件上传
commit 提交到仓库区
- 每提交一次,就生成一个版本
git commit -m 版本描述
status 查看状态(谁被提交的一个状态)
git status
log 查看版本号
git log 版本详细信息 git log --oneline 简洁的版本信息
reset --hard 切换版本
git reset --hard 版本号 eg: git reset --hard 83132fe (把所有代码回退到某一个版本)
reflog 查看所有版本号
git reflog eg: c610837
7.文件忽略
(1)介绍:
对于无需使用git进行管理的文件或文件夹使用此文件进行配置
(2)使用步骤
- 在项目文件夹下创建文件 .gitignore
- 在该文件里配置信息
(3)常用配置规则:
- /git-demo1/ 过滤整个文件夹
- *.txt 过滤所有.txt文件
- /git-demo1/a.html 过滤某个具体文件
8.分支
(1)介绍
git版本控制系统支持分支操作。使用分支意味着可以从开发主线上分离开来,然后在不影响主线的同时继续工作。
在初始化本地 Git 仓库的时候,Git 默认已经帮我们创建了一个名字叫做 master 的分支。通常我们把这个master 分支叫做主分支,默认只有一个分支为master主分支。
(2)分支解决的问题
在进行多人协作开发的时候,为了防止互相干扰,提高协同开发的体验,建议每个开发者都基于分支进行项目功能的开发。
(3)分支相关命令
branch 查看所有分支
git branch
branch 分支名 创建分支
git branch 分支名
checkout 切换分支
git checkout 分支名
merge 合并分支
git merge 分支名
(4)项目使用分支的步骤
(5)冲突问题
介绍:如果在两个不同的分支中,对同一个文件进行了不同的修改,Git 就没法合并它们。 我们需要打开这些包含冲突的文件然后手动解决冲突。
9.远程仓库
(1)介绍:
Git 命令都是在本地执行,如果想通过 Git 分享你的代码或者与其他开发人员合作。 就需要将文件放到一台其他开发人员能够连接的服务器上。这就是远程仓库的作用。
(2)远程仓库分类:
- github:github是一个基于git的代码托管平台,在国外,速度比较慢,在大陆的使用很受影响
- gitee:gitee(码云)是一个基于git的代码托管平台,国内使用频率较多
(3)操作流程
提交项目到远程仓库
- 注册gitee : Gitee - 基于 Git 的代码托管和研发协作平台
- 注册github:Github
- 创建远程仓库
- 本地仓库
- 推送到远程仓库
-
- 第一种
git push 远程仓库地址 分支名
-
- 第二种
起别名: git remote add 别名 远程仓库地址 查看是否起成功: git remote -v 提交 : git push 别名 分支名
-
- 第三种
git push -u 别名/远程仓库地址 分支名 -u 可以记录本次的远程仓库地址和分支名,后期再提交时只需要 git push即可
(4) 相关命令
remote add 添加 远程仓库别名
git remote add 别名 远程仓库地址
remote -v 查看别名
git remote -v
remote rm 删除别名
git remote rm 别名
push 提交到远程仓库
git push 远程仓库地址 分支名 git push 别名 分支名 git push -u 别名 分支名 后边的提交只需要 git push 即可
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)