放弃本地所有修改,并和server一致
-
回到最后一次commit的状态
git reset --hard
git clean -df -
和server一致
git fetch --all
git pull -
查看状态
git status
head
它是一个指向你正在工作中的本地分支的指针,可以将 HEAD 想象为当前分支的别名
Git的4个区域
- Workspace:工作区
程序员进行开发改动的地方,是你当前看到的,也是最新的。
平常我们开发就是拷贝远程仓库中的一个分支,基于该分支进行开发。在开发过程中就是对工作区的操作。
- Index / Stage:暂存区
.git目录下的index文件, 暂存区会记录git add添加文件的相关信息(文件名、大小、timestamp…),不保存文件实体, 通过id指向每个文件实体。可以使用git status查看暂存区的状态。暂存区标记了你当前工作区中,哪些内容是被git管理的。
当你完成某个需求或功能后需要提交到远程仓库,那么第一步就是通过git add先提交到暂存区,被git管理。
- Repository:仓库区(或本地仓库)
保存了对象被提交 过的各个版本,比起工作区和暂存区的内容,它要更旧一些。
git commit后同步index的目录树到本地仓库,方便从下一步通过git push同步本地仓库与远程仓库的同步。
- Remote:远程仓库
远程仓库的内容可能被分布在多个地点的处于协作关系的本地仓库修改,因此它可能与本地仓库同步,也可能不同步,但是它的内容是最旧的。
git高级教程
https://www.cnblogs.com/lelei/p/12599466.html
HEAD
指向本地仓库
git diff
git diff filepath 工作区和缓存区比较
git diff HEAD filepath 工作区和HEAD比较
git diff --staged 暂存区与HEAD比较
git diff branchName filepath 当前分支工作区和另一个分支的HEAD比较
git diff commitId filepath 当前分支工作区与某一次提交进行比较
撤销修改
git checkout – filepath 丢掉工作区修改
git reset HEAD filepath 把暂存区的修改撤销掉(unstage),重新放回工作区。(工作区的内容不变化)
分支命令
创建分支:git branch
切换分支:git checkout 或者git switch
创建+切换分支:git checkout -b 或者git switch -c
合并某分支到当前分支:git merge
删除分支:git branch -d