git总结

2017/04/11 git

恢复代码

场景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信息)
想留言却没看到评论框?点这里。

Search

    Post Directory