版本控制
工作中常常因修改某段代码,而导致全局崩溃。那有没有有没有“后悔药”呢?人生可能没有,但代码有,只要加以合理的控制,科学的管理。便可时时”后悔“。(同时希望你我永远不会后悔,如果后悔了那也可以后悔)
记录管理
在学习版本控制之前,咋那么先学习基础的记录管理(常用的Git命令如下)
代码语言:javascript复制# 查看git仓库状态
git status
# 添加git追踪
# (单一)
git add [filename]
# 添加所有
git add .
# 提交git缓存仓库至本地库 git commit (不建议)
git commit [filename] -m "your messages"
git commit -m "your messages"
代码语言:javascript复制$ git init # 初始化git仓库
Initialized empty Git repository in D:/Note/Git/Learn Git/.git/$ git status # 查看当前git仓库状态
On branch masterNo commits yetnothing to commit (create/copy files and use "git add" to track)$ echo "# a TestFile" > test1.md # 编辑test1.md文件(没有则创建)# ============= #$ git status # 查看当前git仓库状态
On branch masterNo commits yetUntracked files:
(use "git add <file>..." to include in what will be committed)
test1.mdnothing added to commit but untracked files present (use "git add" to track)$ git status # 查看当前git仓库状态
On branch masterNo commits yetChanges to be committed:
(use "git rm --cached <file>..." to unstage)
new file: test1.md
版本控制
查看提交日志
代码语言:javascript复制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 # 隐藏合并提交
版本前进与后退
代码语言:javascript复制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