Java第四十六天,Git系列,走进Git
Java第四十六天,Git系列
一、Git的功能
Git是一种版本控制工具
二、Svn和Git的区别
1.Svn
SVN是集中式版本控制系统,版本库是集中放在中央服务器的
2.Git
Git是分布式版本控制系统,没有中央服务器的,每个人的电脑就是一个完整的版本库;但是为了分享自己的代码并且得到他人的优秀代码,Git提供了共享版本库
三、Git工作流程
- 从远程仓库中克隆Git资源作为本地仓库
- 从本地仓库中 checkout代码然后进行代码修改
- 在提交前先将代码提交到暂存区
- 提交修改。提交到本地仓库。本地仓库中保存修改的各个历史版本
- 在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库
远程仓库和本地仓库的内容是完全一致的
四、Git的安装
官网地址:点我下载 git
五、tortoisegit
tortoisegit俗称小乌龟,主要用来简化 git 的操作
官网地址:点我下载 tortoisegit(小乌龟 git 版)
六、Git的常用术语
- 工作目录 ===> 又称工作区,包含本地仓库(.git)的目录
- Git目录 ===> 为项目存储所有历史和元信息的目录
- ==暂存区 =====> 未 commit 以前数据存放的目录
- 本地仓库 ===> 暂存区的数据 commit 的目的地
- ==远程仓库 =====> 本地仓库 push 的目的地
七、Git的基本使用
==注意:==一切对文件的git操作,都必须在工作目录中完成
- Git GUI Here ===> 图形化界面操作 Git
- Git Bash Here ===> 命令行操作 Git(仿Linux)
- 创建本地仓库 ===>
-
**方法一:**进入指定文件夹,鼠标右键
-
-
方法二:进入指定文件夹,用命令git init创建本地仓库
-
**方法三:**进入指定文件夹(任意的被选中作为本地仓库目录的文件夹)鼠标右键
-
向本地仓库的暂存区上传文件 ===> 选中文件,鼠标右键
-
将暂存区的数据提交到本地仓库的某个分区(master是主分区) ===> 鼠标右键
-
修改已提交的数据 ===> 直接编辑要修改的文件,修改完成后鼠标右键直接提交(git 已经帮我们做了先存暂存区的操作)
-
比较历史版本 ===> 鼠标右键
-
从本地仓库中删除指定文件;手动删除指定文件后,右键提交即可
- 禁止提交指定的文件 ===> 选中指定文件,鼠标右键
注意: 忽略文件后,默认会生成 .gitignore文件,用来记录被忽略提交的文件
八、Git的常用命令
- git --version ===> 查看 git 版本
- git status ===> 查看 git 当前状态
- git init ===> 初始化(创建)仓库
- git clone ===> 拷贝远程仓库
- git add ===> 添加文件到暂存区
- git commit ===> 将暂存区内容添加到仓库中
- git reset ===> 回退版本
- git rm ===> 删除工作区文件
- git log ===> 查看历史提交记录
- git blame [file] ===> 以列表形式查看指定文件的历史修改记录
- git remote ===> 远程仓库操作
- git fetch ===> 从远程获取代码库
- git pull ===> 下载远程代码并合并
- git push ===> 上传远程代码并合并
- git branch (branchname) ===> 创建分支
- git checkout (branchname) ===> 切换分支
- git merge ===> 合并分支
- git branch ===> 列出分支
- git branch -d (branchname) ===> 删除分支
- git merge ===> 将任何分支合并到当前分支
- git blame [file] ===> 查看指定文件的修改记录
- git tag ===> 打标签(不带注解)
- git tag -a ===> 打标签(带注解)
八、远程仓库
1.创建远程仓库
(1)在自己的服务器上安装 git
(2)使用一些现成的远程仓库(例如github、码云)
推荐不要选中Initalize the…
2.本地仓库和远程仓库连接的两种方式
注意:修改后的文件必须先提交到本地仓库再提交到远程仓库
(1)使用https
(2)使用ssh
①在git-ui中执行以下命令,生成ssh密钥
ssh-keygen -t rsa
②执行以下命令复制公钥到 github 的相关配置页面
cat ~/.ssh/id_rsa.pub
![找到公钥
3.推送本地仓库master分支到远程仓库
(1)使用命令行
①连接远程仓库
- 根据github提示输入以下命令与远程仓库建立连接
- 将本地仓库的master分支推送到远程仓库
(2)使用图形化界面(小乌龟git)
①连接远程仓库
- 在本地仓库工作目录右键选择如下
- 输入远程仓库连接地址
②推送远程仓库
4.将远程仓库的数据克隆到本地仓库
①使用命令行模式
git clone https://github.com/huhai-lanyue/lanyue.git
git clone git@github.com:huhai-lanyue/lanyue.git
②使用TortoiseGit克隆
5.冲突的产生与解决
产生原因
无论哪种冲突都是发生在远程仓库;无论哪种冲突产生的最底层原因就是克隆非最新的远程仓库的基础上再推送到远程仓库
解决方案
手动解决
九、私有远程仓库
1.私有远程Git仓库产生的原因
开源远程仓库(github、码云…)都是public(即开源的),任何人都能下载到我们的项目;如果我们的项目是比较机密的,例如银行、军工、保险…;因此诞生了私有远程仓库
2.私有远程仓库的搭建
远程仓库和本地仓库实质上是一样的;只不过远程仓库的作用是共享仓库;因此它的安装和本地仓库的安装没区别,只不过是放在服务器上的
3.服务器端的远程仓库的注意事项
- 初始化远程仓库的时候,推荐纯版本库,即没有工作目录的版本库
git init --bare
十、Git的分支
1.概念
在我们每次的提交,Git都把它们串成一条时间线,这条时间线就是一个分支。这个分支叫主分支,即 master 分支HEAD指针严格来说不是指向提交,而是指向 master, master才是指向提交的,所以,HEAD指向的就是当前分支
一开始的时候, master分支是一条线,Git用master指向最新的提交,再用HEAD指向 master,就能确定当前分支,以及当前分支的提交点
2.创建分支的原理
当我们创建新的分支dev(随便命名)时,Git 新建了一个指针叫dev指向 master相同的提交,再把HEAD指向dev,就表示当前分支在dev上;
3.切换分支的原理
想要切换到哪个分支,就让HEAD指针指向哪
4.如何新建分支
5.如何切换分支
6.分支的合并
切换到主分支,选择要合并的其他分支(这里是dev分支)
7.分支的删除
十一、Idea中使用Git
1.在Idea中配置Git
File | Settings | Version Control | Git
2.在Idea中创建本地仓库
3.使用idea提交
4.idea中查看当前在哪个分支
标签标识当前所在分支
5.Idea中 git 功能的入口