git 版本控制 常用操作流程

第0步 准备工作

1
2
3
4
5
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本地仓库,运行:
1
git init

第2步 查看下 .git目录

1
ls -a
  • ls 不加参数,就不会显示以“.”开头的目录或文件
  • .git 目录用来容纳你不同版本的代码快照

第3步 告诉git哪些文件的变动不需提交的:git add ./.gitignore

  • 新建.gitignore文件
  • 将不需提交的文件名写入.gitignore,以回车分隔

.gitignore 描述哪些变动是不需要提交的 常见的有:

1
2
3
4
5
node_modules
.DS_Store
.idea
.vscode
...

注明.gitignore之后,以后的提交变更只需

1
git add .

就行了

第4步 告诉git哪些文件的变动要提交的:git add xxx

git add是用来暂存提交的

1
2
git add index.html
git add bg.css

可以不用管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步 查看当前状态

1
git status

第6步 提交

git commit -m 字符串

1
git commit -m "version 0.1"

提交,并说明提交理由

  • 注意空格与关闭英文引号
  • 字符串里有空格,就要用引号包起来;没有,可不加 实际上,git commit就是把当前提交的代码复制一份到.git里
  • 更推荐:git commit -v
1
git commit -v
  • 在VSCode里编辑COMMIT EDITMSG信息
  • 帮我回顾,改了什么
  • 请把提交理由写得更详细一点
  • v : –verbose啰嗦
  • 在COMMIT EDITMSG里查看本次提交所有的变更
1
git commit -v --amend

第7步 修改了文件第二版后

再重复4~6步,就ok了

第8步 查看文件版本

1
git log

第9步 多次提交

1
2
git add .
git commit -v

每次重复这两个操作,注意.不要少写,注意空格

第10步 版本回滚/历史版本跳转

1
git log

得到各历史版本 commit xxxxxx…

1
git reset --hard ******
  • ******是提交号的前4~6位,只要不重复
  • 确保已经把所有代码commit了
  • 最好 git status 一下,看看是否 nothing to commit, working tree clean
  • 因为git reset –hard操作会把所有未提交的变动(代码/文件/目录)直接删除

第11步 查看所有操作的历史版本,git reset没提交的除外

1
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文件状态演变
  1. git add 选择要提交的版本
  2. .gitignore文件中描述不提交的内容
  3. git commit -v 用来提交
  4. git log用来查看历史,只有当前提交的过程,不包括回滚的提交
  5. git reset –hard *******用来切换版本
  6. git reflog用来查看所有提交历史


参考文章

相关文章


  • 作者: Joel
  • 文章链接:
  • 版权声明
  • 非自由转载-非商用-非衍生-保持署名