git 版本控制 常用操作流程
第0步 准备工作
cd ~/Desktop
mkdir demo-1
cd demo-1
touch index.html
code .
code . 表示用VSCode打开当前目录
第1步 git init 会创建.git目录
- 用VSCode编辑index.html的第一个版本,随便写
- 用Cmder/iterm2(也可以使用VSCode自带的命令行)
- 在demo-1目录下初始化git本地仓库,运行:
git init
第2步 查看下 .git目录
ls -a
- ls 不加参数,就不会显示以“.”开头的目录或文件
- .git 目录用来容纳你不同版本的代码快照
第3步 告诉git哪些文件的变动不需提交的:git add ./.gitignore
- 新建.gitignore文件
- 将不需提交的文件名写入.gitignore,以回车分隔
.gitignore 描述哪些变动是不需要提交的
常见的有:
node_modules
.DS_Store
.idea
.vscode
...
注明.gitignore之后,以后的提交变更只需
git add .
就行了
第4步 告诉git哪些文件的变动要提交的:git add xxx
git add是用来暂存提交的
git add index.html
git add bg.css
可以不用管warning
只要没error就是正常的
VSCode里的状态:A表示已经添加,U表示未添加
- git add 路径
- 选择哪些变动是需要提交的;
- 路径可以是 绝对/相对 路径
绝对路径:
- [x] /c/Users/Fang/Desktop
- [x] /c/Users/Fang/Music
- [x] ~/Desktop
- [x] ~/Music
“/”表示根目录,绝对路径都是以“/” 开头的,“~ ”是 /c/Users/* 的缩写,所以实际上 “~ ”也是以 / 开头的绝对路径
相对路径:
- [x] .
- [x] ./xxx
- [x] ./xxx/
- [x] xxx
- [x] xxx/1.txt
“.”表示当前目录,相对路径都是“相对于当前”来说的;“../”表示上一级目录,也是相对路径
第5步 查看当前状态
git status
第6步 提交
git commit -m 字符串
git commit -m "version 0.1"
提交,并说明提交理由
- 注意空格与关闭英文引号
- 字符串里有空格,就要用引号包起来;没有,可不加
实际上,git commit就是把当前提交的代码复制一份到.git里
- 更推荐:git commit -v
git commit -v
- 在VSCode里编辑COMMIT EDITMSG信息
- 帮我回顾,改了什么
- 请把提交理由写得更详细一点
- v : --verbose啰嗦
- 在COMMIT EDITMSG里查看本次提交所有的变更
git commit -v --amend
第7步 修改了文件第二版后
再重复4~6步,就ok了
第8步 查看文件版本
git log
第9步 多次提交
git add .
git commit -v
每次重复这两个操作,注意.不要少写,注意空格
第10步 版本回滚/历史版本跳转
git log
得到各历史版本 commit xxxxxx...
git reset --hard ******
- 是提交号的前4~6位,只要不重复
- 确保已经把所有代码commit了
- 最好 git status 一下,看看是否 nothing to commit, working tree clean
- 因为git reset --hard操作会把所有未提交的变动(代码/文件/目录)直接删除
第11步 查看所有操作的历史版本,git reset没提交的除外
git reflog
- 这就是git commit的意义
- 只要git commit 了,代码就不会丢
- git log能上传到远程仓库,而git reflog只在本地仓库
- git log 是当前时间线的提交
- git reflog 是显示所有提交(commit)变动
- 再用git reset --hard回去就行了,如果有必要的话
总结
git status几个状态
- a. 忽略(.gitignore)
- b. 暂存待提交(git add)
- c. 已提交(git commit)
- git reset --hard时,除a b c外 其他状态会被清空
- git文件状态演变
- git add 选择要提交的版本
- .gitignore文件中描述不提交的内容
- git commit -v 用来提交
- git log用来查看历史,只有当前提交的过程,不包括回滚的提交
- git reset --hard *用来切换版本
- git reflog用来查看所有提交历史
·未完待续·
参考文章
相关文章
- 无
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。