回滚代码到某个commit
回退命令:
$ git reset --hard HEAD^ 回退到上个版本,也可以写成HEAD~1
$ git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前
$ git reset --hard commit_id 退到/进到 指定commit的sha码
强推到远程:
$ git push origin HEAD --force
撤销了你上次的commit(仅仅是撤回commit操作,代码仍然保留)
git reset --soft HEAD^
--hard:删除工作空间改动代码,撤销commit,撤销git add ,就恢复到了上一次的commit状态。
--soft:不删除工作空间改动代码,撤销commit,不撤销git add .
--mixed:不删除工作空间改动代码,撤销commit,并且撤销git add .(默认)
合并多个commit提交
1. 查看提交历史(最近10个)
git log -10
2. 回到前面第十个commit,且将后面九个commit提交的内容状态改为未提交
git reset commitID(第十个commit的ID)
git rebase -i HEAD~2
pick:保留commit
squash:合并commit
查看提交的代码文件和行数
git diff --stat :查看修改行数等统计信息,git add 之前
git show [commitID] --stat :查看修改行数,涉及文件清单等统计信息,git commit之后
代码行数查看
git log HEAD~1..HEAD --author="$(git config --get user.name)" --pretty=tformat: --numstat | awk '{ add += $1 ; subs += $2 ; loc += $1 + $2 } END { printf "(HEAD~1, HEAD] 新增行数: %s 删除行数 : %s 总行数: %s\n",add,subs,loc }'
基础命令
- git clone xxxxxx
- git fetch —all
- git branch
- git pull :更新同名远程分支代码到本地
- git checkout .
- git reset —hard
- git commit -a -m “” ,使用git commit -a可以不用再git add。
- 查看文件修改历史:git blame [filename],你就会得到整个文件的每一行的详细修改信息:包括SHA串,日期和作者。
- 查看某一个commit的提交文件:git show commit_id
- 删除分支;
- 删除本地分支:git branch -d 分支名(remotes/origin/分支名)
- 强制删本地:git branch -D 分支名
- 删除远程分支:git push origin --delete 分支名(remotes/origin/分支名)
- e.g. git push origin --delete feature/branch_test