Git
概要
- 代码版本管理工具
- Git :分布式版本控制系统
- SVN:集中式的版本控制系统
- 区别
- Git的底层并没有采用 CVS、SVN 底层所采用的那套增量式文件系统,而是采用一套自行维护的存储文件系统。当文件变动发生提交时,该文件系统存储的不是文件的差异信息,而是文件快照,即整个文件内容,并保存指向快照的索引。
- 提高 Git 分支的使用效率
- 导致代码仓库中内容重复程度过高,从而仓库体积过大
- 参考资料
基本操作
-
项目检出:
- Windows : 建立工作空间,d:/work/project,项目放在一起便于管理
- 登录 gitLab / gitHub,点击相应项目,选择HTTP方式,复制项目HTTP地址
- IDEA:
- VCS --> check out from version control --> 粘贴http地址 --> 将主干 master clone 到本地
- VCS --> git --> clone --> 粘贴http地址,选择本地存放目录
- 检出的项目非Maven管理项目
- 现象
- IDEA 左侧 Project 中项目无法正常展示通过
- 快捷键无法打开某个的接口的实现类
- IDEA 右侧 Maven 点击展开无法查看到项目中每个Moudle
- 解决
- 选中 Project --> 右键 --> Maven --> add 将项目改为Maven管理的项目
- 现象
-
命令窗口:
- 安装 Git ;打开本地项目目录,右键 Git Bash Here ,打开命令窗口
- IDEA 下方 Terminal 窗口(实际为命令行窗口IDEA - Terminal)
- Windows+R --> cmd --> 运行命令窗口 --> 切换目录到项目存放目录,可以直接执行 git 命令
-
远程同步:更新远程服务器所有分支到本地
- git fetch :用于同事新push分支后你无法获取的情况下
- git fetch -p :清除远程已被删除的分支
- git remote show origin 查看remote地址,远程分支,还有本地分支与之相对应关系等信息
- git remote prune origin 清除远程已经删除的分支
- git pull -p 清除远程已经删除的分支
-
创建分支:
- 开发分支命名规范:dev-author-date-project 开发人-创建日期-项目名称
- git checkout master 切换到本地master分支
- git fetch 拉取远程最新代码
- git pull origin master 拉取远程master最新代码
- git checkout -b dev-author-date-project origin/master 从远程master分支clone新的开发分支
- git push -u origin dev-author-date-project 提交开发分支到远程
- git branch --set-upstream-to=origin/dev-author-date-project dev-author-date-project 将本地分支与远程分支关联
- 目的在于push代码时无法关注当前代码提交到了远程的哪个分支,否则通过IDEA提交代码时需要切换origin分支,不然就会直接提交到master
-
代码拉取:
- git pull -p origin dev-author-date-project
-
切换分支:
- git status 切换分支前确认当前分支无未 Commit and Push 的代码,否则会将当前未提交的代码带到下一个分支中,造成误提交
- 移除提交
- 移除未跟踪内容
-
将待提交的内容从索引缓存区中移除
Changes to be committed:
(use “git reset HEAD …” to unstage)- git reset HEAD filePath/fileName
- filePath/fileName 可通过 git status 查看得出
-
git rm 移除添加索引库中的指定文件
- git rm -r --cached . 不删除本地文件
- . 表示所有,可以替换为指定的文件
- git rm -r --f . 删除本地文件
- . 表示所有,可以替换为指定的文件
- git rm -r --cached . 不删除本地文件
-
- 忽略未跟踪内容
- git clean -fn 查看可以忽略的内容
- git clean -f 执行忽略文件操作
- git clean -fd 忽略文件目录
- 暂存未提交内容:误操作,不想在当前分支提交修改,git stash ,切换到下一给分支,git stash pop , git commit ,git push 就可以将在上一个分支误开发的内容提交到下一个分支上了
- 移除未跟踪内容
- 切换操作
- git checkout dev-author-date-project
- IDEA 右下角,左键点击 Git:Master --> Remote Branches --> 选择相应的分支目录 --> check out as new local branch 选择一个远程分支建立本地分支
-
代码提交:
- a.git 命令
- git status 查看当前未 commit 的代码
- git add
- git add . 提交所有未 commit 的代码
- git add 通过status 的输出结果,通过包路径添加指定的文件,可以避免将一些不需提交的配置文件误提交
- 将文件内容添加索引库中,索引库中保存工作数内容的快照,该快照作为下一次提交的内容
- 如果执行 git add 命令后,再次修改该类,需要重新 git add 否则 commit 的不是最新的代码
- git rm 移除添加索引库中的指定文件
- git commit 命令将索引的当前内容与描述更改的用户和日志消息一起存储在新的提交中
- git commit -m “” 将添加到 add 的代码提交到本地,添加注释
- git commit -a 查看所有需要提交的代码信息
- git push
- git push -u origin master
- 将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push
- git push
- 默认只推送当前分支,simple方式
- git push –-force / -f origin master
- git push -u origin master
- a.git 命令