强制切换分支所指位置
git branch -f main c3
强制分支main指向c3
git branch -f main HEAD~3
强制分支main指向head的父节点再往前3个
git checkout c3
将HEAD指向c3
reset 和 revert
比如现在我们远程分支和本地分支的版本一样,现在本地进行reset,但是远程是感知不到的。这时用revert进行回退,然后再push到远程分支上。
rebase 和 merge
merge会创建一个新的节点来合并
rebase致力于一种『line』形式。如果不清楚,那就再去网站上练一练吧。
安装oh-my-zsh后,git简写
# 最常用,查看 git 项目红、绿状态用
git status (gst)
# 查看本地分支
git branch (gb)
# 查看本地以及远端分支
git branch -a (gb -a)
# 删除本地分支
git branch -D xxx (gb -D xxx)
# 查看红色状态的改动点
git diff (gd)
# 将当前路径下的红色状态文件变成绿色状态
# 注意,做 ga 操作之前一定要先做 gd
git add . (ga .)
# 变成绿色之后,仍可对比查看改动点
git diff --cached (gd --cached)
# 正式提交到本地仓库,绿色状态提交到仓库
git commit -m "注释" (gc -m "")
# add 和 commit 合并
git commit -a (gca)
# 查看提交日志,这个命令不带文件修改列表,建议用 glg
git log
# 查看提交日志,带文件修改列表
git log --stat (glg)
# 拉取远端分支(远端和本地分支必须同名 xxx)
git pull origin xxx (gl origin xxx)
# 推送本地分支到远端(远端和本地分支必须同名 xxx)
git push origin xxx (gp origin xxx)
# 推送同时 set-upstream 即关联本地和远端同名分支
# 关联之后 git push (gp) 或 git pull (gl) 即可不再需要后面的值
git push -u origin xxx (gp -u origin xxx)
# 打新分支,默认从当前所在的本地分支copy
git checkout -b mybranch (gco -b mybranch)
# 如果要指定从哪个分支copy
# 后面的参数 origin/mybranch 表示从远端 mybranch 拷贝
git checkout -b mybranch origin/mybranch (gco -b mybranch origin/mybranch)
# 如果是从远端copy,更加建议使用 -t 参数
# 这样省略掉倒数第二个参数,同时本地分支和远端分支建立起了关联
# 这是另一种关联本地分支和远端分支的方法
git checkout -t origin/mybranch (gco -t origin/mybranch)
# set-upstream 也可以建立关联,一旦本地和远端同名分支建立起关联
# 后续的 push 和 pull 操作,不需要任何参数, gp 或 gl 即可
# merge 操作
# merge 可合并不同名分支到当前本地分支
# 以下指令将远端
git merge origin/master (gm origin/master)
# 一般用 git pull 可取代 git merge
# 注意空格和斜杠的区别,什么时候用空格?
# push pull 用空格,其它用 / 斜杠,比如 merge checkout
git pull origin master (gl origin master)
# 删除远端分支用 git push 推空内容到远端
git push origin :mybranch (gp origin :mybranch)
# 打本地标签,git tag 系列 oh-my-zsh 大多没有简写,需要的话自己添加
git tag -a 8.1.0
# 删除本地标签
git tag -d 8.1.0
# 查看本地标签
git tag
git tag -v
# 推送本地标签推到远端,用到了 git push
# 这两种好像没区别,所以用简单的吧
git push origin --tags (gp origin --tags)
git push --tags (gp --tags)
# 将指定本地标签推到远端,这里不能省略 origin
git push origin 8.1.0 (gp origin 8.1.0)
# 将状态整体回滚到某次提交
# 不加 --hard 的话,回退的代码会以红色状态出现,gst 可查看
# 加了 --hard 则完全回退到 commitId 对应的状态,gst 查看没有红色文件
git reset commitId
git reset commitId --hard
# 将某次提交记录撤销,但整体历史不回滚
# 注意体会 revert 和 reset 区别
git revert commitId
# 查看远端源信息(即远端)
git remote -v (grv)
# 添加新的源并命名
git remote add duitangOrigin ssh://git@git.duitang.net:7999/fe/dtw-audit.git
# 删除源
git remote remove duitangOrigin