git 版本控制 常用操作流程
第0步 准备工作
|
|
code . 表示用VSCode打开当前目录
第1步 git init 会创建.git目录
- 用VSCode编辑index.html的第一个版本,随便写
- 用Cmder/iterm2(也可以使用VSCode自带的命令行)
- 在demo-1目录下初始化git本地仓库,运行:
|
|
第2步 查看下 .git目录
|
|
- ls 不加参数,就不会显示以“.”开头的目录或文件
- .git 目录用来容纳你不同版本的代码快照
第3步 告诉git哪些文件的变动不需提交的:git add ./.gitignore
- 新建.gitignore文件
- 将不需提交的文件名写入.gitignore,以回车分隔
.gitignore 描述哪些变动是不需要提交的 常见的有:
|
|
注明.gitignore之后,以后的提交变更只需
|
|
就行了
第4步 告诉git哪些文件的变动要提交的:git add xxx
git add是用来暂存提交的
|
|
可以不用管warning 只要没error就是正常的 VSCode里的状态:A表示已经添加,U表示未添加
- git add 路径
- 选择哪些变动是需要提交的;
- 路径可以是 绝对/相对 路径
绝对路径:
- /c/Users/Fang/Desktop
- /c/Users/Fang/Music
- ~/Desktop
- ~/Music
“/”表示根目录,绝对路径都是以“/” 开头的,“~ ”是 /c/Users/*** 的缩写,所以实际上 “~ ”也是以 / 开头的绝对路径
相对路径:
- .
- ./xxx
- ./xxx/
- xxx
- xxx/1.txt
“.”表示当前目录,相对路径都是“相对于当前”来说的;“../”表示上一级目录,也是相对路径
第5步 查看当前状态
|
|
第6步 提交
git commit -m 字符串
|
|
提交,并说明提交理由
- 注意空格与关闭英文引号
- 字符串里有空格,就要用引号包起来;没有,可不加 实际上,git commit就是把当前提交的代码复制一份到.git里
- 更推荐:git commit -v
|
|
- 在VSCode里编辑COMMIT EDITMSG信息
- 帮我回顾,改了什么
- 请把提交理由写得更详细一点
- v : –verbose啰嗦
- 在COMMIT EDITMSG里查看本次提交所有的变更
|
|
第7步 修改了文件第二版后
再重复4~6步,就ok了
第8步 查看文件版本
|
|
第9步 多次提交
|
|
每次重复这两个操作,注意.不要少写,注意空格
第10步 版本回滚/历史版本跳转
|
|
得到各历史版本 commit xxxxxx…
|
|
- ******是提交号的前4~6位,只要不重复
- 确保已经把所有代码commit了
- 最好 git status 一下,看看是否 nothing to commit, working tree clean
- 因为git reset –hard操作会把所有未提交的变动(代码/文件/目录)直接删除
第11步 查看所有操作的历史版本,git reset没提交的除外
|
|
- 这就是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用来查看所有提交历史
参考文章
相关文章
- 无
- 作者: Joel
- 文章链接:
- 版权声明
- 非自由转载-非商用-非衍生-保持署名
- 河 掘 思 知 简