版本控制
工作中常常因修改某段代码,而导致全局崩溃。那有没有有没有“后悔药”呢?人生可能没有,但代码有,只要加以合理的控制,科学的管理。便可时时”后悔“。(同时希望你我永远不会后悔,如果后悔了那也可以后悔)
记录管理
在学习版本控制之前,咋那么先学习基础的记录管理(常用的Git命令如下)
# 查看git仓库状态 git status # 添加git追踪 # (单一) git add [filename] # 添加所有 git add . # 提交git缓存仓库至本地库 git commit (不建议) git commit [filename] -m "your messages" git commit -m "your messages"
$ git init # 初始化git仓库 Initialized empty Git repository in D:/Note/Git/Learn Git/.git/ $ git status # 查看当前git仓库状态 On branch master No commits yet nothing to commit (create/copy files and use "git add" to track) $ echo "# a TestFile" > test1.md # 编辑test1.md文件(没有则创建) # ============= # $ git status # 查看当前git仓库状态 On branch master No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) test1.md nothing added to commit but untracked files present (use "git add" to track) $ git status # 查看当前git仓库状态 On branch master No commits yet Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: test1.md
版本控制
查看提交日志
git log # 查看所有提交日志 # 参数详解 -p # 按补丁格式显示每个提交约会的差异。 --stat # 显示每次提交的文件修改统计信息。 --shortstat # 只显示--stat中最后的行数修改添加删除统计。 --name-only # 仅在提交信息后显示已修改的文件清单。 --name-status # 显示新增,修改,删除的文件清单。 --abbrev-commit # 仅显示SHA-1校验和所有40个字符中的前几个字符。 --relative-date # 使用适当的相对时间而不是完整格式显示日期(例如“ 2周前”)。 --graph # 在日志旁以ASCII图形显示分支与合并历史。 --pretty # 使用其他格式显示历史提交信息。可用的选项包括oneline,short,full,full和format(用于定义自己的格式)。 --oneline # 简写 --pretty=oneline --abbrev-commit 合用的简写。 --no-merges # 隐藏合并提交
版本前进与后退
git reset # 参数详解 -q / --quiet # 只报错误 --mixed # 重置头部和索引 --soft # 只重置头 --hard # 重置 头、索引、工作树 # 回退一个版本 git reset --hard HEAD^ # 回退两个版本 git reset --hard HEAD^^ # 回退前N个版本 git reset --hard HEAD~N # 版本穿梭 git reset --head hash