Git
分布式版本控制系统
安装git
查看版本:
git --version
使用前需要设置用户名和邮箱地址
git config --global user.name "zhang"
git config --global user.email "..........@qq.com"
查看所有配置
git config --list
Git文件的三种状态
已提交(committed):数据与安全保存在本地数据库中
已修改(modified):修改了文件,但未保存在数据库
已暂存(staged):对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
Git项目的三个工作区
工作区:自己创建的本地项目目录
暂存区:(stage或index)及Git自动创建的第一个分支master,以及指向他的一个指针HEAD
Git仓库:工作区一个隐藏目录git,Git的版本库
创建版本库并提交文件
版本库又称仓库,即一个目录,这个仓库被Git管理起来,每个文件的修改删除都能跟踪
1.初始化git本地仓库 (执行该命令时会在本地初始化有关没有任何文件的空仓库)
git init
2.新建文件文件 如:git01.txt,并添加至暂存区
git add <path> # path 可以是文件也可以是目录
git 能判断path中,修改(不包括删除)的文件,及新添的文件,并添加到索引库中
git status # 显示工作目录和暂存区的状态
3.提交文件到本地版本库 必须先提交到暂存区,在提交到本地仓库
git commit
# 通常会执行
git commit -m '提交的记录说明'
显示提交的日志信息
git log
#简化版 -5 : 表示输出5条
git log -5 --pretty==oneline
查看修改前后的所有文件内容
git diff HEAD -- git01.txt
# -- 表示变动前的文件
# ++ 表示变动后的文件
撤销添加到暂存区的文件
git reset HEAD
版本回退
#方式一
git reset --hard HEAD^ #一个 ^ 表示回退一个版本 ^可以有多个
#方式二
git reset --hard HEAD~3 #3 表示回退三个版本
版本前进
git reset --hard 版本号 #版本号只需输入前面几位即可
查看记录在本地的HEAD和分支引用在过去指向的位置
git reflog
若工作区误删git02.txt 但在本地仓库存在 会把本地仓库的复制到工作区
git checkout -- git02.txt
删除git02.txt文件(工作区和本地仓库都会被删除)
git rm git02.txt
忽略文件
.gitignore :这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中
# 此为注释 – 将被 Git 忽略
*.a # 忽略所有 .a 结尾的文件
!lib.a # 但 lib.a 除外
/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/ # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
*.class
*.log
*.lock
# Package Files #
*.jar
*.war
*.ear
target/
# idea
.idea/
*.iml
远程仓库
Octotree : 谷歌浏览器插件,更方便查看项目结构
克隆远程仓库项目到本地
去Github找到需要的项目。(可直接下载或使用git方式)
git clone https://github.com/xiaotao2177393158/test.git
将本地库推送到远程仓库
先注册一个Github账号
方式一:Https
方式二:SSH
# 获取公钥 和 密钥
ssh-keygen -t rsa -C "..........@qq.com"
在IDEA中 使用git 推送至远程仓库
应该以管理员身份打开idea
- 新建一个仓库,复制仓库地址
2.克隆到本地
git clone https://gitee.com/xiaotao2177393158/test.git
3.将生产的文件里面的内容全部复制到项目的目录中
加载项目如图:
Git 分支
# 显示所有分支
git branch
# 显示所有远程分支
git branch -r
# 新建一个分支,但依然停留在当前分支
git branch test # test 分支名
# 新建一个分支,并切换到该分支
git checkout -b [branch]
# 合并指定分支到当前分支
git merge [branch]
# 删除分支
git branch -d test
# 删除远程分支
git push origin --delete test
git branch -dr [remote/branch]
多个分支如果并行执行,就会导致我们代码不冲突,就会存在多个版本!
marster 主分支非常稳定,一般不允许在上面修改,我们会新建一个分支dev,修改完成后,合并到主分支上。