恢复代码
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时:
git checkout -- file
场景2:已经add,想丢弃修改:
git reset HEAD file 或者
git rm --cached file
场景3:已经commit,想要撤销本次提交:
git reset HEAD^
注:
HEAD^ 上个版本
HEAD^^ 上上个版本
...
HEAD~100 前100个版本
git reset
git reset --soft # 只撤回commit内容
git reset # 撤回commit和add的内容
git reset --hard # 撤回所有修改的内容,包括工作区的
远程分支
创建远程分支
git push origin test:master # 提交本地test分支作为远程的master分支
git branch test #分两步
git push origin test
删除远程分支
git push origin :test # 远程的test将被删除,但是本地还会保存的
git push origin --delete test # 删除远程分支
git diff
git diff # 比较的是工作目录和暂存区之间的差异
git diff --cached # 比较暂存区和上次提交时的快照之间(HEAD)的差异
git diff --stat #查看简单的对比结果
patch
生成patch
git format-patch 节点A 节点B # 两个节点之间的提交
git format-patch -1 节点A (-n就表示要生成几个节点的提交)
git format-patch HEAD^ 依次类推……
打patch
git apply --stat newpatch.patch # 检查patch文件
git apply --check newpatch.patch # 检查能否应用成功
git am --signoff < newpatch.patch # 打补丁
(使用-s或--signoff选项,可以commit信息中加入Signed-off-by信息)