git忽略
touch .gitignore //新建 在linux 中是隐藏文件 需要 ll -a
cat .gitignore
/*
# 这是注释
----
a.js 忽略单个文件
a.txt 忽略单个文件
---
*.js 忽略js结尾的所有文件
---
*.js
!a.js 忽略除了a.js外的其他js文件
---
注意:(git默认忽略空目录)
---
abc 忽略目录 和目录中所有文件
---
abc/*.html 忽略abc目录下的所有html文件
!abc/1.html
---
abc/*/*.txt abc/a/*.txt abc/b/*.txt
---
abc/**/*.txt 忽略 abc/a/b/*.txt abc/a/b/c/*.txt
*/
分支 branch
概念: 分支是由多个commit链条按照一定的顺序组成的链 / 一条工作记录线
commit 一个版本(每个版本都有sha1)
注意:
1.git仓库初始化了就有master分支 ,master是主分支(默认分支)
2.每一个分支必须基于一个commit
有关分支的命令:
创建分支
git branch 分支名
切换分支
git checkout 分支名
删除分支
git branch -d 分支名
查看分支
git branch
/*
* master *代表你当前所在的分支
dev
*/
创建并切换分支
git checkout -b 分支名
合并分支
git merge 分支名
实验:不能删除分支的情况
1. 不能删除当前分支
2. 如果分支包含‘未合并’的内容 不能删除当前分支,
未合并: 在要删除的分支存在一个新的版本 commit,而且只有当前删除的分支指向于这个版本
可以强制 删除 git branch -D dev
合并完可以删除
git merge dev
git branch -d dev
3. 注意两个细节:
a)如果在分支dev中进行了写(新建文件,删除文件,修改文件)操作 ,但此操作局限在工作区(没有进过add commit)
在这种情况下,在master分支是可以看到dev分支的写操作的 ,如果 dev 分支对这个写操作执行了add和 commit
则master 分支是不能观察到dev这个写操作的
b)