Git代码区域及基本命令
基本概念
3个步骤
正常情况下,工作流就是3个步骤,对应上图的3个箭头:
git add . (工作区->暂存区)
git commit -m "comment" (暂存区->本地仓库)
git push (本地仓库->远程仓库)
4个区
- 工作区(working Area)
- 暂存区(Stage)
- 本地仓库(Local Repository)
- 远程仓库(Remote Repository)
5种状态
- 未修改(Origin)
- 已修改(Modified)
- 已暂存(Stage)
- 已提交(Commited)
- 已推送(Pushed)
检查修改
已修改,未暂存
git diff //检查工作区和暂存区之间的差异
已暂存,未提交
git diff --cache //查看暂存区和本地仓库之间的差异
已提交,未推送
git diff master origin/master //查看本地仓库和远程仓库之间的差异
撤销修改
已修改,未暂存
git checkout .
//或者
git reset --hard
在执行完`git checkout .`后,修改已被撤销,`git diff `没有任何内容。
反义词:git add .
和 git checkout .
。
已暂存,未提交
当执行了 git add .
后,但是还没有执行 git commit
操作,我们可以使用git reset
将提交到暂存区的修改文件拉下来,可以再使用 git checkout .
回到未修改前的状态。
git reset
git checkout .
或者
git reset --hard
git reset只是把修改退回到git add .之前的状态,git checkout 退回未修改。
已推送
本地仓库
和远程仓库
是等价的,你只需要先恢复本地仓库
,再强制push
到远程仓库
就好了:
git reset --hard HEAD^
git push -f
1.可以使用HEAD^来描述版本,一个^表示前一个版本,两个^^表示前两个版本,以此类推。
2.也可以使用数字来代替^,比如说前100个版本可以写作HEAD~100。
.可以使用HEAD^来描述版本,一个^表示前一个版本,两个^^表示前两个版本,以此类推。
2.也可以使用数字来代替^,比如说前100个版本可以写作HEAD~100。
3.也可以直接写版本号,表示跳转到某一个版本处。我们每次提交成功后,都会生成一个哈希码作为版本号,所以这里我们也可以直接填版本号,哈希码很长,但是我们不用全部输入,只需要输入前面几个字符即可,就能识别出来。