1. 撤销本地未提交 commit
场景形容:
1、本地批改了一堆文件
2、git add / git commit 很快乐的将代码提交到本地仓库了
3、打算 git push 的时候,发现不小心增加了不想要提交的文件
4、查看 git log 曾经产生了一条 git commit 记录
5、接下来就开始撤销
开始撤销 commit 记录
git log 查看以后分支的历史记录
2、找到你想复原到的 ID,而后 git rest --mixed ID
3、这样就复原到了提交之前的状态。被批改提交的文件会被寄存在暂存区中。
git reset 指令
git reset(--mixed) HEAD~1 head 树回到上个版本,index 树也回到上个版本
回退一个版本,会将暂存区的内容和本地已提交的内容全副复原到未暂存的状态。git reset --hard HEAD~1 三棵树都回到上个版本
回退一个版本, 清空暂存区, 将已提交的内容的版本复原到本地, 本地的文件也将被复原的版本替换
git reset --soft HEAD~1 head 树回到上个版本
回退一个版本, 不清空暂存区, 将已提交的内容复原到暂存区, 不影响原来本地的文件 (未提交的也不受影响)
HEAD~1 回退到上个版本
HEAD~3 回退到前三个版本(指向父节点的指针挪动三次)
2. git commit 后发现 msg 写错或者少了提交几个文件
场景形容:
1、本地批改了一堆文件
2、git add / git commit 很快乐的将代码提交到本地仓库了
3、打算 git push 的时候,发现有局部代码未提交 /msg 写的不优雅
解决
1、把新的文件增加到暂存区
2、git commit 的时候勾选 Amend
3、填写新的 msg 而后 commit
4、查看 git log 发现只有新的这一次 commit
3、以后分支工作一半,须要切换的新的分支进行工作
1. git stash 暂存区的文件储藏起来
2. 切换分支
3. 解决完新分支后回到之前的分支
4. git stash apply 将储藏的文件从新利用
5. git stash drop 0 移除刚刚储藏的文件
git stash 相干指令
git stash list 显示队列
git stash apply [index] 将指定的储藏的文件从新利用
git stash drop [index] 移除指定储藏的文件
4、创立新分支,从指定拉取代码
1. 创立新分支,个别从 mater 拉取
2.git pull origin [branchName]
3.push 到新分支
5、reset 的原理
http://git-scm.com/book/zh/v2…
6、合并某个分支上的指定 commit
场景形容
1、开发分支上有多个 commit
2、本次迭代只须要上其中的某一个 commit
3、须要将这个 commit 合并到 test 分支
解决
1、dev 分支 git log 找到那个 commit 的 SHA-1 校验和 如(62a521)2、切换到 test 分支
3、git cherry-pick 62a521