目录
0 导学
- 视频教程
【尚硅谷】5h打通Git全套教程IDEA版(涵盖GitHub\Gitee码云\GitLab) - 教程资料
官网地址 - 参考指南
Git官网
Git命令手册
Git 教程
图解Git
Github使用教程 - 练习
Learn Git Branching
LintCode-Git
learngitbranching
主要
基础篇
git commit
git branch
2种合并分支的方式
git merge <branch>
git rebase <branch>
高级篇
-
分离 HEAD
-
相对引用 ^
通过哈希值指定提交记录不方便 -> 相对引用:
使用^
向上移动 1 个提交记录 (相当于移动到父节点)
使用~<num>
向上移动多个提交记录,如~3
-
相对引用2 ~
使用相对引用最多的就是移动分支
强制修改分支位置,可直接使用 -f 选项让分支指向另一个提交
git branch -f main HEAD~3
将 main 分支强制指向 HEAD 的第 3 级父提交
eg.
-
撤销变更
git revert HEAD
:要撤销的提交记录后面确多了新提交,因为新提交记录 C2’ 引入了更改 —— 这些更改刚好是用来撤销 C2 这个提交的. 即 C2’ 的状态与 C1相同
eg.分别撤销local
(本地分支)和pushed
(远程分支)上的最近一次提交. 共需要撤销两个提交(每个分支一个)
移动提交记录
git cherry-pick
作用:将一些提交复制到当前所在位置(HEAD)的下面
eg.将3个分支中的提交记录复制到 main 上
- 交互式 rebase
当知道所需要的提交记录(并且还知道这些提交记录的哈希值)时,用 cherry-pick 最简单;但不清楚想要的提交记录的哈希值,想从一系列的提交记录中找到想要的记录 - 利用交互式的 rebase(使用带参数--interactive
的 rebase 命令, 简写为 -i)
当 rebase UI界面打开时,可以做3件事:- 调整提交记录的顺序(通过鼠标拖放来完成)
- 删除你不想要的提交(通过切换 pick 的状态来完成,关闭就意味着你不想要这个提交记录)
- 合并提交,它允许你把多个提交记录合并成一个
eg.
git rebase -i overHere
To be updated…
Git
1 Git介绍
Git:免费、开源的分布式版本控制系统 (版本控制-记录文件修改历史记录)
代码托管中心(基于网络服务器的远程代码仓库-远程库):
➢ 互联网
GitHub(外网)
Gitee 码云(国内网站):国内GitHub
➢ 局域网
GitLab:一般公司内部使用,不对外开放
2 Git安装
3 Git命令
命令名称 | 作用 |
---|---|
git config --global user.name 用户名 | 设置用户签名 |
git config --global user.email 邮箱 | 设置用户签名 |
git init | 初始化本地库 |
git status | 查看本地库状态 |
git add 文件名 | 添加到暂存区 |
git commit -m “日志信息” 文件名 | 提交到本地库 |
git reflog | 查看历史记录 |
git reset --hard 版本号 | 版本穿梭 |
签名-区分不同操作者身份
用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的
Git 首次安装必须设置用户签名,否则无法提交代码
这里设置用户签名和将来登录 GitHub 的账号无关
4 Git分支
2种合并分支的方式 merge rebase
所以merge相当于修改提交(git commit)了一次
5 IDEA集成Git
1 配置Git忽略文件
- 配置原因
与项目实际功能无关,不参与服务器部署运行,将其忽略可屏蔽IDE工具间差异 - 需要忽略的文件
- IDEA 特定文件
- Maven 工程的 target 目录
- 配置
创建忽略规则文件 xx.ignore(建议 git.ignore)
为便于让 ~/.gitconfig 文件引用,放在用户家目录下
git.ignore 文件模版# Compiled class file *.class # Log file *.log # BlueJ files *.ctxt # Mobile Tools for Java (J2ME) .mtj.tmp/ # Package Files # *.jar *.war *.nar *.ear *.zip *.tar.gz *.rar # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* .classpath .project .settings target .idea *.iml
2 定位Git程序
3 初始化本地库
初始化前
初始化后,项目文件夹下出现 .git 目录 -> git 接管了该项目目录
变红->文件被追踪
4 添加到暂存区
变绿->暂存区
5 提交到本地库
代码提交注释规范:
- changed (完成的任务)
- updated (完成任务的更新)
- added (新加入的需求)
- fixed (修复bug)
变白->版本库
6 分享工程到 GitHub
IDEA使用终端提交
终端shell路径 powershell.exe->sh.exe (用powershell也能使用git命令)
终端使用不了 ll 命令,用 git bash 验证一下初始化了版本库 .git
To be updated…