Git
一、什么是git
git是一款分布式版本控制工具
1.通俗来讲就是我们下载好git后,需要配置自己的个人信息
(因为一个项目要多人开发,个人信息就是验证是谁写的代码,方便后面项目出现问题追责用的。)
2.我们写代码,直接从一个叫做远程仓库的地方通过git命令,将代码拉取到本地,然后进行开发
3.开发完成后再上传到远程仓库,这个远程仓库就是最后整合代码的地方)
4.从远程拉取仓库的时候,是相当于将远程仓库的代码整个复制到本地,这样每个人的电脑都是一个完成的版本库。
Git优点:
1.适合分布式开发
2.速度快,灵活
3.两个人出现了代码冲突,很容易快速解决
4.离线工作(因为每个人拉取代码后,自身相当于版本库,远程仓库宕机不影响本地开发)
5.保护数据
二、git能干什么
简单来说,git可以实现代码管理,版本控制以及协同开发。
三、通过命令行使用git
1.下载git
Git下载链接:git-scm.com/download 下载后安装,桌面右击桌面,即可看到Git Bash。
2.配置个人信息
git config --global user.name “姓名”
git config --global user.email “邮箱地址”
查看配置信息
git config --global user.name
git config --global user.email
3.为常用指令配置别名
有的git命令比较长,我们可以给这些长的命令起别名,就不需要输入那么复杂了
步骤:
1. 打开用户目录,创建 .bashrc 文件(用户目录就是在 C盘\用户\用户所在文件夹\)
2. 在 .bashrc 文件中输入如下内容:
#用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
#用于输出当前目录所有文件及基本信息
alias ll='ls -al'
(这样以后查看目录,直接输入ll,查看日志直接输入git-log即可)
3.打开gitBash,执行 source ~/.bashrc
4.解决乱码问题:
1. 打开GitBash执行下面命令
git config --global core.quotepath false\
2. ${git_home}/etc/bash.bashrc 文件最后加入下面两行
export LANG="zh_CN.UTF-8"\
export LC_ALL="zh_CN.UTF-8"\
5.git流程图
图解如下:
1.工作区(就是你本地文件夹工作的地方)
2.暂存区(位于.git目录下,用来记录工作区代码更新状态,将代码提交到本地仓库前要先将代码提交到这里)
3.本地仓库(记录本地代码的状态,位于.git目录下)
4.远程仓库(存放本地开发代码的地方)
如何理解工作区和本地仓库的区别:
工作区的代码是不能被git管理的,
本地仓库的代码是可以被git进行管理的,
工作区如变成本地仓库,被git管理?
(需要在想变成本地仓库的文件夹下,打开git Bush,通过 git init 命令 进行初始化操作。)
将代码提交到远程仓库的流程:
add commit push
工作区 -----> 暂存区 -----> 本地仓库-----> 远程仓库
git命令如下:
1. clone(克隆): 从远程仓库中克隆代码到本地仓库
2. checkout (检出):从本地仓库中检出一个仓库分支然后进行修订
3. add(添加): 在提交前先将代码提交到暂存区
4. commit(提交): 提交到本地仓库。本地仓库中保存修改的各个历史版本
5. fetch (抓取) : 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。
6. pull (拉取): 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch+merge
7. push(推送) : 修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库
图解:
新建文件后,是未跟踪的状态,
新建文件后,通过 git add添加到了暂存区,然后又修改了,并没有再次添加到暂存区,就是未暂存的状态。
通过git add添加到暂存区后,然后通过git commit 添加到本地仓库,进而可以将代码提交到远程仓库。
6.git基础命令
1.查看代码修改的状态 (工作区,暂存区的状态)
git status
2.添加工作区到暂存区
git add
例子 : git add . (将本地所有文件提交到暂存区)
3.提交暂存区到本地仓库
git commit -m "提交代码的描述信息"
4.查看提交日志
git log
命令形式:git log [option]
options
--all 显示所有分支
--pretty=oneline 将提交信息显示为一行
--abbrev-commit 使得输出的commitId更简短
--graph 以图的形式显示
5.版本回退(将提交到本地仓库的代码回退到暂存区)
git reset --hard commitID (commitID可以通过 git log 或者 git-log 查看)
如何查看已经删除的记录?(可以查看删除记录的commitID)
git reflog
6.查看本地分支
git branch
7.创建本地分支(创建的分支是基于当前分支创建的,所以创建的分支里的代码和当前代码一致)
git branch 分支名
8.切换分支
git checkout 分支名
切换到一个不存在的分支(创建并切换)
git checkout -b 分支名
9.合并分支
git merge 分支名
举例:在master分支上创建了新的分支,切换到新的分支后,修改了代码,
然后切换回master分支,使用git merge 分支名命令 将其他分支的代码提交合并到当前分支上来。
10.删除分支(不能删除当前分支,只能删除其他分支)
git branch -d branch1 删除分支时,需要检查
git branch -D branch2 强制删除分支,不做任何检查
11.解决冲突
当两个分支上对同一个文件的同一个代码位置进行了修改,合并分支的时候,就会造成冲突。
如何解决冲突?步骤如下:
1.处理文件冲突的地方
2.将冲突代码改成我们最终想要的代码,将解决完冲突的文件添加到暂存区(add)
3.提交到仓库(commit)
4.然后在提交到远程仓库(push)
四、通过IDEA使用git
1.在Idea中配置Git
点击Test按钮,出现成功提示,代表配置完成。
2.在Idea中操作Git
场景:本地已经有一个项目,但是并不是git项目,
我们需要将这个放到码云的仓库里,和其他开发人员继续一起协作开发。
1. 创建项目远程仓库
在Gitee或者github中创建远程仓库
2. 初始化本地仓库
初始化本地仓库的过程,就是选择哪个项目被git管理。
3. 设置远程仓库(未来将要把代码提交到哪个gitee或者github的仓库中)
4. 提交到本地仓库
5. 推送到远程仓库
6. 克隆远程仓库到本地
7. 创建分支
8. 切换分支及其他分支相关操作
9. 解决冲突
1. 执行merge或pull操作时,可能发生冲突(冲突的代码文件会爆红)在爆红的代码文件中,对冲突的代码部分进行修改
2. 冲突解决后加入暂存区
3. 提交到本地仓库
4. 推送到远程仓库
3.IDEA常用GIT操作入口
4. 场景分析
1.当前的开发环境如下,我们每个人都对这个项目已经开发一段时间,接下来我们要切换成团队开发模式。
2.也就是我们由一个团队来完成这个项目实战的内容。团队有组长和若干组员组成(组长就是开发中的项目经理)。
3.所有操作都在idea中完成。
流程:
1.组长,基于本项目创建本地仓库;创建远程仓库,推送项目到远程仓库
(组长创建基本的项目,通过git add ,git commit ,git push 将项目推到远程仓库)
2.每一位组员从远程仓库克隆项目到idea中,这样每位同学在自己电脑上就有了一个工作副本,可以正式的开始开发了。
(git clone git远程仓库地址)
3.组员A修改工作区,提交到本地仓库,再推送到远程仓库。组员B可以直接从远程仓库获取最新的代码
(组员A,git push 组员B,git pull)
4.组员A和组员B修改了同一个文件的同一行,提交到本地没有问题,但是推送到远程仓库时,后一个推送操作就会失败
解决方法:需要先获取远程仓库的代码到本地仓库,编辑冲突,提交并推送代码。
解决方法图示:
五、Git操作注意事项
-
切换分支前先提交本地的修改
-
代码及时提交,提交过了就不会丢
-
不要随意删除文件目录
-
windows下无法创建.ignore|.bashrc文件
在git目录下打开gitbash 执行指令 touch .gitignore
-
IDEA集成GitBash作为Terminal