1. Git简介
参考文档:https://www.liaoxuefeng.com/wiki/896043488029600
Git是什么?
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
1.1 版本控制
什么是版本控制?
版本控制是一种在开发的过程中用于管理我们对文件、目录工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的技术。
版本控制工具
- git
- svn
- cvs
- …
1.2 安装和环境配置
下载
国内镜像:https://npm.taobao.org/mirrors/git-for-windows/
安装
只需next安装即可(注意:安装目录根据自己盘符选择)
1.3 准备工作
点击git bash进入命令模式。
- 输入git config -l 查看配置信息。
- 使用git前需要配置user.name 和 user.email
1.4 创建仓库
- 创建一个目录test01。
- 进入到test01,鼠标右键git bash here.
- 执行git init命令,初始化。
- 创建文件readme.txt ,添加一行内容。
git is a very useful tool
- 将文件添加到仓库,git add。
git add readme.txt
- 提交文件, git commit 。
git commit -m ''
- 查看修改内容,git diff HEAD – readMe.txt
git diff HEAD -- readme.txt
3. 时光穿梭机
3.1 版本回退
在Git中,用HEAD
表示当前版本,也就是最新的提交ed33400
(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
。
查看历史版本
git log
回退命令
# 回退到上一个版本
git reset --hard head^
# 回退到指定版本
# git reset --hard commitId
commitId只需要前面几位就可以了,git会自动去匹配。
命令记录
git reflog
3.2 工作区和暂存区
3.3 撤销
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>
,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,执行版本回退,不过前提是没有推送到远程库。
3.4 删除
$ git rm readMe.txt
rm 'readMe.txt'
Jackwey@DESKTOP-17T70J4 MINGW64 /d/work/git/test01 (master)
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: readMe.txt
Jackwey@DESKTOP-17T70J4 MINGW64 /d/work/git/test01 (master)
$ git commit -m 'delete readMe.txt'
[master e4795e3] delete readMe.txt
1 file changed, 6 deletions(-)
delete mode 100644 readMe.txt
Jackwey@DESKTOP-17T70J4 MINGW64 /d/work/git/test01 (master)
$ ls
Jackwey@DESKTOP-17T70J4 MINGW64 /d/work/git/test01 (master)
$ git status
On branch master
nothing to commit, working tree clean
4. 远程仓库
4.1 配置远程仓库
- 绑定ssh,实现免密登录,在用户目录下找到.ssh文件。
# 进入.ssh目录 右键git bash here
ssh-keygen -t rsa -C 你的邮箱
- 将公钥信息public key添加到码云账户中。
- 从远程仓库克隆项目到本地。
git clone https://gitee.com/jackwy/ssm.git
5. 分支管理
# 查看分支
git branch
# 创建分支
git checkout -b branchname
# 切换分支
git checkout branchname
# 合并指定分支到当前分支
git merge dev
# 删除分支
git branch -d branchname
# 删除远程分支
git push origin --delete branchname
git branch -dr branchname
# 推送到远程
git push -u origin master
6. 码云
https://gitee.com/
7. 集成到Idea
参考:https://blog.csdn.net/a749402932/article/details/107148373/
8. 忽略文件
- 忽略文件中的空行或以#号开始的行会被忽略。
- 可以使用Linux通配符;如:*代表任意多个字符,?代表一个字符,[]代表可选范围,{}代表可选的字符串。
- “!”开始表示不会被忽略。
- “/”开始表示要忽略的文件在此目录下,而子目录中的文件不会被忽略。
- “/”结尾表示要忽略此目录下的子目录。
# 这是注释
*.class # 忽略所有.class文件
out/ # 忽略out目录下的所有文件
9. Linux常用
# 创建文件
touch a.txt
# 往文件中追加内容 echo "content" >> file
$ echo "hello ,it's from echo ." >> a.txt
# vi 编辑文件,编辑完成后按 “ESC” 输入 “:wq!” 保存并退出
# vi 编辑文件,编辑完成后按 “ESC” 输入 “:q!” 直接退出,不会保存