将多个commits提交merge成一条提交记录(正常的merge多条commits,在git status指令上是看不到修改的)
git merge --squash master //将master的多个提交merge到当前分支
git pull 和 git fetch 的区别
git pull 更新后的代码会自动和本地分支合并
git fetch 更新的代码不会和本地合并,如果要合并就需要merge
分支代码出现问题,想要丢弃分支重新创建可以执行以下命令
git fetch --all
git reset --hard origin/master
git pull //可以省略
git fetch 指令是下载远程仓库最新内容,不做合并
git reset 指令把HEAD指向master最新版本
git pull origin master//等同于下面的三条命令
git fetch orgin master //将远程仓库的master分支下载到本地当前branch中
git log -p master ..origin/master //比较本地的master分支和origin/master分支的差别
git merge origin/master //进行合并
git reflog:命令查看你的历史变更记录
git reset --hard 版本id:回退到相应的版本
git branch -D 分支名 ->删除本地分支
git push origin -d 分支名 ->删除远端分支
git rebase -i HEAD~2: 命令会在你默认的编辑器中打开最近两次的commit历史,-i表示用交互式打开,
可以:编辑下面的pick用下面的命令,例如r, s等
pick 38fb7b7 Bug 33445 - Capitalize components title. r=feifei
pick 478f608 Bug 22669 - Caculate the length of rename input when the rename input is blank. r=feifei
# 变基 e28cc8d..478f608 到 e28cc8d(2 个提交)
# 命令:
# p, pick = 使用提交
# r, reword = 使用提交,但修改提交说明
# e, edit = 使用提交,但停止以便进行提交修补
# s, squash = 使用提交,但和前一个版本融合
# f, fixup = 类似于 "squash",但丢弃提交说明日志
# x, exec = 使用 shell 运行命令(此行剩余部分)
# d, drop = 删除提交
git merge develop : 将develop分支合并到当前的分支
git push -f : 强制推送到远程分支,一般不推荐使用
git remote remove origin :删除本地指定的远程地址
git remote add origin https://gitee.com/kingCould/HelloWord.git :添加远程地址
git checkout -b newBranch origin/newBranch : 拉取远程分支,并创建本地分支
git rebase --abort 会回到rebase操作之前的状态,之前的提交的不会丢弃
git reset HEAD^ --hard 用HEAD表示当前版本,上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个
比较容易数不过来,所以写成HEAD~100。 强制回退到上一个版本,之前的修改会被删掉
git reset HEAD^ : 回退到上一个版本,但会保留之前的修改,建议使用这个指令
撤销commit
git reset --soft HEAD^
修改文件权限导致的文件变动影响commit
使用这个命令去除影响:git config core.filemode false
git的fork
fork的原理图: