安装完成之后,配置用户名和邮箱
git config --global user.name "你的git的用户名"
git config --global user.email "你的git的邮箱"
git config --list 查看git的配置
git基本命令
git init 初始化本地仓库
git add 文件名 将文件上传到暂存区
git commit -m "此次提交的命名"
git status 比较(工作区域和暂存区域)与远程仓库有什么不同
git reset HEAD~ 回退到上一个版本(其中一个~表示一个版本,git reset HEAD~~/git reset HEAD~2表示回退到前两个版本 )
- git reset --mixed HEAD~(--mix是默认的)
- 移动HEAD的指向,将其指向上一个快照
- 将HEAD移动后指向的快照回滚到暂存区域
- git reset --soft HEAD~
- 移动HEAD的指向,将其指向上一个快照
- git reset --hard HEAD~
- 移动HEAD的指向,将其指向上一个快照
- 将HEAD移动后指向的快照回滚到暂存区域
- 将暂存区域的文件还原到工作目录
git reset 版本快照 回滚到指定快照
git reset 版本快照 文件名/路径 回滚个别文件
git checkout -- 文件名 取消本地文件的修改,让git仓库上的文件覆盖掉本地工作区的文件(这个最好不要使用)
git log 查看git提交日志
git diff 比较暂存区域和工作目录中的差异,也就是修改之后还没有暂存起来的变化内容
git diff 快照id 快照id 比较两个历史快照
git diff 快照id/HEAD 比较git仓库和工作目录中的差异
git diff --cached 快照id 比较指定快照与暂存区域的不同
git commit --amend 更正最后一次的提交,就是说把新修改的提交到最新一次的git仓库中,并且不会创建一个新的快照
git rm 文件名 该命令删除的只是工作目录和暂存区域的文件,也就是取消跟踪,在下次提交时不纳入版本管理
git rm -f 文件名 当工作目录和暂存区域的同一个文件存在不同内容时,执行git rm -f 文件名 命令可以把两个都删除
git rm --cached 文件名 只删除暂存区域的文件(保留工作目录的文件)
git mv 旧的文件名 新的文件名
git branch 分支名 创建一个新的分支
git checkout 分支名 切换分支
git log --decorate --oneline --graph --all graph:以图形化的方式显示 all:显示所有分支
git merge 分支名 合并分支
git checkout -b 分支名 创建并切换分支
git branch -d 删除分支 分支都是一个个的指针,所以创建和删除都比较快
reset命令是用来回到过去的,根据选项的不同,reset命令将移动HEAD指针(--soft) 覆盖暂存区域(--mixed,默认) 覆盖工作目录(--hard)
checkout命令虽说是用于切换分支,但前面你也看到了,它事实上也是通过移动HEAD指针和覆盖暂存区域、工作目录来实现的
reset与checkout的区别:
- 对于reset --hard 命令来说,checkout命令更安全,因为checkout命令在切换分支前会先检查一下当前的工作状态,如果不是“clean”(git status 提示所有已经提交了)的话,Git不会允许你这样做的;而reset --hard命令则是直接覆盖所有数据
- 另外一个区别是如何更新HEAD指向,reset命令会移动HEAD所在分支的指向,而checkout命令只会移动HEAD自身来指向另一个分支