Git使用配置
git config --global user.name "用户名"
git config --global user.email "邮箱"
Git理论基础
理解
- Git将每个版本独立保存
- Git 三个重要区域,工作区域(项目区域) 暂存区(Index) Git仓库(HEAD)
Git工作流程
- 在工作目录添加、修改文件
- 将需要进行版本控制的文件放入暂存区域
- 将暂存区域的文件提交到Git仓库
Git三种状态
- 已修改(modified)
- 已暂存(staged)
- 已提交(committed)
Git命令
创建git仓库
git init // 创建一个git仓库
git add file | git add . | git add * //将文件提交到暂存区域
git commit - m "你干了啥" //将暂存区域提交到git仓库
查看工作状态
git status
历史提交
git log
版本回退
git reset HEAD~ //将git仓库版本回退到暂存区版本,暂存区 git仓库回退上一个版本
git reset HEAD~10
git reset --mixed HEAD~ //1.移动HEAD的指向,将其指向上一个快照 2.将HEAD移动后指向的快照回滚到暂存区域 git reset 默认mixed
git reset --soft HEAD~ //1.移动HEAD的指向,将其指向上一个快照
git reset --hard HEAD~ //1.移动HEAD的指向,将其指向上一个快照 2.将HEAD移动后指向的快照回滚到暂存区域 3.将暂存区域的文件还原到工作目录
git reset [hard mixed soft] 快照版本的ID号 //可以往前回滚,也可以往后回滚
版本对比
git diff //比较当前工作目录和暂存区域快照
git diff 快照ID1 快照ID2 //比较历史两个快照版本
git diff 快照ID //比较当前工作目录和Git仓库快照
git diff --cached //比较暂存区域和git仓库快照
修改最后一次提交
git commit --amend //修改最后一次提交,可以修改提交说明
git commit --amend -m "提交说明" //不进入修改提交说明界面
删除文件
git rm 文件名 //从工作区域和暂存区域删除 文件
git rm -f 文件名 //强制删除文件
git rm --cached 文件名 //删除暂存区域文件,保留工作目录文件 gitinore忽略文件重新生效
重命名文件
git mv 旧文件名 新文件名 //将旧文件名修改为新文件名,并提交到暂存区域
git log命令
git log
git log --decorate --oneline --graph --all
Git分支
git branch feature //创建feature 分支
git log --decorate //显示每个commit的引用
git checkout feature //切换到feature分支
git merge 分支名 //合并分支
git branch -d 分支名 //删除分支
匿名分支
git checkout HEAD~ //git创建一个匿名分支,匿名分支所做操作都会丢失
git reset&git checkout
恢复文件
checkout和reset命令都可以用于恢复指定快照的文件,并且它们都不会该表HEAD指针的指向
reset命令只将指定文件恢复到暂存区域(--mixed),而checkout命令是同时覆盖暂存区域和工作目录
git 不允许使用 reset --soft 和 --hard 选项用于文件恢复
恢复快照
reset命令用来回到过去,reset命令移动HEAD指针(--soft)->覆盖暂存区域(--mixed,默认)->覆盖工作目录(--hard)
checkout 命令用于切换分支,事实上通过移动HEAD指针覆盖暂存区域和工作目录实现的
区别:对于reset --hard来说,checkout命令更安全,因为checkout命令在切换分支前会检查一下当前工作状态,reset--hard命令是直接覆盖所有数据
区别:git reset --hard 分支 ,原来的快照会消失,git checkout 分支,原来的分支不会消失
Git远程仓库
//清除 远端仓库关联
git remote remove origin
//推送项目到新的地址
git remote add origin http://git.efacedata.com/tewoo/back-end.git