概述
在开发中可能遇到这些场景
① 小明负责的模块就快要完成,就在即将保存备份的时候,电脑突然蓝屏了,工作又得重新做
② 项目需要实现一个复杂的功能,小王摸索了一个星期终于有眉目,但是代码已经被改的面目全非,回不到过去
③ 一个类出现了BUG,但是经理发现有好几个人都修改过这个类,无法定位到这个BUG是谁造成的
为了解决以上这些类似的麻烦,版本控制器诞生了
集中式版本控制器(SVN和CVS)。版本库是集中存放到中央服务器,团队的每个人工作时从中央服务器下载代码,是必须联网才能工作,局域网或者互联网。个人修改后提交到中央版本库。
分布式版本控制器(Git)。分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样工作的时候,无需联网,因为版本库就在自己的电脑上。多人协作只需要各种的修改推送给对方,就能互相看到对方的修改了。
安装与配置
下载地址:https://git-scm.com/download
下载完成后打开安装包,一直下一步即可
安装完成后打开一个文件夹,右键如果可以看到这两个选项说明Git安装成功
- Git GUI Here Git提供的图形界面工具
- Git Bash Here Git提供的命令行工具
Git基本配置
使用Git命令行工具,设置用户信息
git config --global user.name "用户名"
git config --global user.email "用户邮箱"
# 查看配置信息
git config --global user.name
git config --global user.email
解决GitBash乱码问题
第一步打开GitBash执行下面的命令
git config --global core.quotepath false
第二步在Git的安装目录下的etc文件夹下面找到bash.bashrc文件最后加入下面两行
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
为常用指令配置别名(可选)
有些常用指令参数非常多,每次都输入好多参数,可以使用别名进行代替
打开用户目录,创建 .bashrc 文件
部分Windows系统不允许用户创建点号开头的文件,可以打开GitBash执行 touch ~/.bashrc
在 .bashrc 文件中输入如下内容
# 用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
# 用于输出当前目录所有文件及基本信息
alias ll='ls -al'
基础指令
准备本地仓库
要使用Git对代码进行版本控制,首先需要获得本地仓库
- 在电脑的任意位置创建一个空目录(例如test)作为我们的本地Git仓库
- 进入这个目录中,点击右键打开Git Bash窗口
- 执行命令 git init
- 创建成功后可以在文件夹中看到隐藏的 .git 文件夹
Git工作目录对于文件的修改(增加、删除、更新)会存在几个状态,这些修改的状态会随着执行Git命令而发生变化
当对工作区的文件进行修改后,需要执行git add命令将修改后的文件添加到暂存区,之后文件的状态会更改为已暂存(staged),最后执行git commit命令后会将暂存区的文件提交到仓库,成功提交到仓库后可以查询到提交记录。
文件添加到暂存区
将修改的文件添加到暂存区
# 添加指定的文件
git add "文件名"
# 添加所有文件
git add .
查询修改的状态
# 查看文件状态
git status
暂存区文件提交到本地仓库
# 提交暂存区文件
git commit -m "注释内容"
查询提交记录
# 查看提交记录
git log [option]
option参数
- --all 显示所有分支
- --pretty=oneline 将提交信息显示为一行
- --abbrev-commit 使得输出的commit更简短
- --graph 以图的形式显示
版本回退
# 版本回退
git reset --hard commitID
commitID可以使用git log命令查看
使用git reflog指令可以看到已经删除的提交记录
添加文件至忽略列表
当有些文件无需纳入Git管理,不希望这些文件总是出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。这种情况可以在工作目录中创建一个名为 .gitignore的文件(文件名称固定),列出一个要忽略的文件模式
忽略以 .log 结尾的文件,在 .gitignore文件中写入如下内容
*.log
在目录下新建一个app.log文件,在 .gitignore文件中添加忽略后,通过git status命令查看是否成功
分支常用指令
几乎所有的版本控制系统都以某种形式支持分支。使用分支意味着你可以把工作开发从主线上分离开来进行重大的BUG修复、开发新功能,以免影响开发主线
创建和查看本地分支
# 创建分支
git branch 分支名称
# 查看本地分支
git branch
切换分支
# 切换分支
git checkout 分支名
可以直接切换到一个不存在的分支(创建并切换)
git checkout -b 分支名
合并分支
# 一个分支上的提交合并到另一个分支
git merge 分支名称
创建两个文件,file01.txt和file02.txt
将file01.txt提交到master分支的仓库中,将file02.txt提交到dev分支的仓库中
当处于master分支时,只能看见file01.txt;当处于dev分支时,只能看见file02.txt
将dev分支提交的内容合并到master分支
删除分支
# 不能删除当前分支,只能删除其他分支
git branch -d 分支名 删除分支时,需要做各种检查
git branch -D 分支名 不做任何检查,强制删除
解决冲突
当两个分支上对文件进行修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时需要手动解决冲突,解决冲突的步骤
- 处理文件冲突的地方
- 将解决完冲突的文件加入暂存区
- 提交到仓库
master和dev分支都有一个file02.txt文件,在file02.txt文件中分别进行编辑
master分支编辑file02.txt文件,文件第一行写入 sum = 2
dev分支编辑file02.txt文件,文件第一行写入 sum = 3
两个分支分别将file02.txt提交到仓库中
在master分支执行合并操作会出现合并失败
打开file02.txt查看内容
冲突需要自行解决,将file02.txt内容重新编辑
将解决后的file02.txt文件重新提交到仓库中即可
Git远程仓库
常用的托管服务【远程仓库】
GitHub(https://github.com/) :是一个面向开源及私有软件项目的托管平台,只支持Git作为唯一的版本库格式进行托管
GitLab(https://about.gitlab.com) :是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务,一般用于企业、学校等内部网络搭建Git私服
Gitee码云(https://gitee.com/) :是国内的一个代码托管平台
创建仓库
注册码云,地址:https://gitee.com/signup
创建完成到个人主页,右上角 + 号中选择新建仓库
配置SSH公钥
生成SSH公钥,在git bash输入指令
ssh-keygen -t rsa
一路回车,如果公钥已经存在,则自动覆盖
获取公钥,在git bash输入指令
cat ~/.ssh/id_rsa.pub
复制公钥内容,在Gitee网站,右上角头像点击设置,之后点击左边菜单栏的SSH公钥
添加远程仓库
初始化本地仓库,然后与已创建的远程仓库进行对接
git remote add <远程名称> <仓库路径>
远程名称,默认是origin取决于远端服务器设置
仓库路径,从远端服务器获取此URL
打开git bash执行命令,将本地仓库与远程仓库对接
查看远程仓库
git remote
推送到远程仓库
git push [-f] [--set-upstream] [远程名称 [本地分支名][:远端分支名]]
如果远程分支名与本地分支名相同,可以只写本地分支名称
git push origin master
-f 表示强制覆盖
--set-upstream 推送到远端的同时并建立起和远程分支的关联关系
git push --set-upstream origin master
如果当前分支已经和远端分支关联,可以省略分支名和远程名
将本地master分支与远程仓库master分支关联
克隆
如果已经有了一个远程仓库,可以直接克隆到本地
git clone <仓库路径> [本地目录]
本地目录可以省略,会自动生成一个目录
在本地创建一个新目录git-test02,将仓库中的内容克隆到新目录中
在git-test02文件夹中打开git bash命令行,输入克隆指令,将远程仓库内容拉取克隆下来
抓取和拉取
抓取命令
git fetch [remote name] [branch name]
抓取命令就是将仓库里的更新都抓取到本地,不会进行合并
如果不指定远端名称和分支名,则抓取所有分支
拉取命令
git pull [remote name] [branch name]
拉取命令就是将远程仓库的修改拉到本地并自动进行合并,等同于fetch+merge
如果不指定远端名称和分支名,则抓取所有并更新当前分支
IDEA使用Git
IDEA配置Git,进入设置页面搜索Git
配置完成git后,IDEA打开之前克隆远程仓库的git-test02目录下的git-test
在该目录下创建一个文件
创建文件会弹出窗口,选择add即可
为了防止向远程仓库推送出现冲突,先进行拉取,然后再提交文件最后推送
将文件进行提交
将提交的文件推送到远程仓库
文章来源:https://www.toymoban.com/news/detail-797648.html
文章来源地址https://www.toymoban.com/news/detail-797648.html
到了这里,关于01—Git的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!