1.全部重置工作区的内容(未commit之前)
git reset --hard
2. 回退一个commit
git reset --soft HEAD~1 // 保留commit的修改
git reset --hard HEAD~1 // 取消commit的修改
git revert HEAD~1 // 是撤消该commit,会生成一个新的commit revert记录。
git reset --mixed e7ea38343f196093c08a18b703d666d1d983f1be //回退一个提交,不修改文件
3.强制更新
方法一:
git fetch --all
git reset --hard origin/branchxx
git pull
方法二:
git add .
git reset --hard // 清空commit之前所有的工作目录
git pull origin branchxx // 更新
4.创建并切换分支
git checkout xxxbranch -b mybranch
5.取远程分支并分化到本地一个新分支
git checkout -b mybranch origin/xxx
6.快速提交一个comit到其他远程分支
git fetch --all
git pull origin xxxbranch
git cherry-pick commitidA
git push szhuaqin HEAD:xxxBranch
7.删除 一些 没有 Git add 的 文件
git clean 参数
-n 显示 将要 删除的 文件 和 目录
-f 删除 文件,-df 删除 文件 和 目录
git clean -n
git clean -df
git clean -f
8.从分支的提交记录上抽取patch
git log
git format-patch HEAD~n //n表示需要抽取几个patch
9. push
git push origin HEAD:refs/for/
10.查看一个文件的修改记录
git blame xxx
11.合并commit提交
git rebase -i HEAD~3 可以修改历史提交,数字3可以自己设置,代表最近3笔提交。
执行后会出现:
pick:*******
pick:*******
pick:*******
把需要修改的comit前面的pick 改成 edit或e,然后保存退出。
这时通过git log你可以发现,git的最后一次提交已经变成你选的那个了,这时再使用:
git commit --amend 来修改commit信息.
然后 git rebase --continue .
如果前面选择了多个commit要修改,这里就会跳到下一个commit,然后依照上面修改然后提交,再continue.
另外 git rebase -i 还可以合并commit,在前面pick那个界面把要合并的commit 前面改成三squash或s.
12.repo 操作所有分支
repo forall -c git git reset --hard
13.回退 Git add 修改(绿色变红色)
git reset HEAD
stackoverflow 高票答案
git rm --cached <added_file_to_undo>
如需撤销文件夹加上-r
git rm -r --cached <added_file_to_undo>