一小时Git教程(上)

1 课程简介
集中式 SVN
分布式 git
2 安装和初始化
Git Bash Here
(1)命令行
(2)图形化
(3)IDE插件扩展
windows:posh-Git
git config --global user.name "pony"
git config --global user.email "pony@orcycloud.com"
省略(Local):本地配置,只对本地仓库有效
–global:全局配置,所有仓库有效
–system:系统配置,对所有用户有效
git config --global credential.helper store
保存用户名和密码不用每次都输入
git config --global --list
查看Git的配置信息
3 新建仓库
方式一:
git init
方式二:
git clone
mkdir learn-git
cd learn-git
git init
git init my-repo
git clone https://gitlab.orcy.net.cn/pony/anti-ad.git
4 Git的工作区域和文件状态
5 添加和提交文件
- 创建仓库
git init
- 查看仓库状态
git status
main分支或master分支
- 添加到暂存区
git add
- 提交
git commit # 支持通配符
- 配置示例
echo "这是第一个文件!" > file1.txt
git add file1.txt
git rm --cached <file> # 删除暂存区文件
git commit # 只提交暂存区的文件
git commit -m "第一次提交" # -m 指定提交信息
git add *.txt # 支持通配符
git add . # 添加当前文件夹里所有文件到暂存区
git log # 查看提交记录
git log --oneline # 查看简洁提交记录
6 回退版本
git reset | 工作区 | 暂存区 |
---|---|---|
git reset –soft | √ | √ |
git reset –hard | × | × |
git reset –mixed | √ | × |
查看暂存区内容
git ls-files
git status
回退到上一个版本
git reset --hard HEAD^
查看操作历史记录
git reflog
回退到指定版本
git reset --hard b270efn
误删除也可以找回
7 git diff查看差异
(1)查看工作区、暂存区、本地仓库之间的差异
(2)查看不同版本之间的差异
(3)查看不同分支之间的差异
git diff # 默认,工作区与暂存区之间的差异
git diff HEAD # 工作区和版本库之间的差异
git diff --cache # 暂存区和版本库之间的差异
git diff [id1] [id2] # 比较两个版本之间的差异
git diff [id] HEAD # 比较指定版本和最新版之间的差异
git diff HEAD~ HEAD # 比较上一个版本和最新版本之间的差异
HEAD^ 上一个版本
HEAD~2 之前2个版本
HEAD~3 之前3个版本
git diff file3 # 只看指定文件的差异
git diff <分支名1> <分支名2> # 查看两个分支之间的差异
8 git rm删除文件
方式1:
直接删除文件 + 提交
rm file1.txt
git add .
git commit -m "说明"
方式2:
git rm file2.txt
# 三个区都删除了
git commit -m “delete file2”
# 最后要提交
9 gitignore忽略文件
应该忽略那些文件?
(1)系统或者软件自动生成的文件
(2)编译产生的中间文件和记过文件
(3)运行时生成的日志文件、缓存文件、临时文件
(4)涉及身份、密码、口令、密钥等敏感信息文件
echo access.log > .gitignore
git status
# 忽略 access.log 文件
git ls-files # 查看版本库中的文件
# *.log 匹配所有日志文件
# .gitignore 生效前提,这个文件不能是已经添加到仓库中的(已添加的先删除,再生效).
git rm --cached file1 # 从暂存区删除
git 默认不会将空文件夹添加到仓库中
.gitignore 天加文件夹 temp/ 文件夹以 / 结尾
git status -s # 查看状态的简略模式
.gitignore 文件的匹配规则
- 从上到下逐行匹配,每一行表示一个忽略模式
- 官网匹配规则https://git-scm.com/docs/gitignore
# 忽略所有 .a 文件
*.a
# 但跟踪所有 lib.a,即使你在前面忽略了 .a 文件
!lib.a
# 只忽略当前目录下的 T0D0 文件,而不忽略 subdir/T0D0
/T0D0
# 忽略任何文件夹下名为 build 的文件夹
build/
# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf
忽略文件常用语言的模板:github.com/github/gitignore
本文链接:https://www.orcy.net.cn/3656.html,转载请附上原文出处链接
发表评论