https://juejin.im/post/5ee649ff51882542ea2b5108
# 1.1 查看本地分支
git branch
# 1.2 查看远程分支
git branch -r
# 1.3 查看所有分支
git branch -a
# 1.4 切换分支
git checkout 分支名
git log #查看提交 id
# 一键让本地分支跟远端一模一样,我的改动全不要了
git reset --hard origin/<branch-name> ++
# 2.1 撤销上一次 commit, 这样就能撤销提交记录
git reset --hard <commit id> # <commit id> 代表需要撤销的上一个 id
git push origin pre --force #pre 分支名
# 2.2 撤销分支合并
# 撤销前一次 commit
git revert HEAD
# 撤销前前一次 commit
git revert HEAD^
# 撤销指定的版本,撤销也会作为一次提交进行保存
git revert commit + <commit id> ++
git reset --soft HEAD^ #将最近一次提交节点的提交记录回退到暂存区
git reset --mixed HEAD^ #将最近一次提交节点的提交记录回退到工作区
git reset --hard HEAD^ #将最近一次提交节点的提交记录全部清除
git revert commit_id #重做指定 commit_id 的提交
## 3:推送现有仓库
git remote rename origin <old-origin> # <old-origin> 随便起名
git remote add origin <仓库地址>
git push -u origin --all #推送所有分支,注意:拉取下来需要切换分支才有非主分支的,或者有其他分支的提交也可以
https://账号:密码@github.com/learn01sz/code.git

git checkout -b 分支名 #创建并切换到分支名 ++
git branch 分支名 #创建分支名
git add *
git commit -m "提交说明"
git push origin panda
git checkout <当前分支>
# 7.1 合并所有:
git merge <被合并的分支名>
# 7.2 合并单个文件、文件夹
git checkout master 1.js 、 git checkout src/view
# 合代码到公共分支的时候使用
git merge #书写正确规范的 merge commits 留下记录。
# 合代码到个人分值的时候使用
git rebase #可以不污染分支的历史提交记录,形成简介的线性记录。
git pull origin 远程分支名 --allow-unrelated-histories #将远程仓库的文件拉取到本地仓库
# 比如上面 b 合并到 a 报错,可以这样操作:(在 a 分支中执行)
git pull origin b --allow-unrelated-histories
git push origin --delete <远程分支名称> +++
git branch -D <本地分支名称> +++
git tag -a v1.2.4 -m "my version 1.2.4"
git push origin v1.2.4
git checkout <分支名称>
git cherry-pick a8bc7986716954cb34a8d929c25c5b374e77c702 ++++
git push
# 撤销合并
# 还没 push →
git cherry-pick --abort 或 git reset --hard
# 已经 push →
git revert <commit>
git stash #封存修改
git stash pop #把修改还原
git stash drop xxx
# 删除所有 stash 内容 / 清空 Git 栈
git stash clear
git reflog #得到最近的提交记录,能获取 commitId
git rebase -i commitID #比如 git rebase -i 9efb5ce
#查看所有 tag
git tag
#用正则查看相匹配的 tag
git tag -l "v1.0\*"
#添加 tag
git tag -a tag_name -m "tag 描述"
#推送 tag 到远程
git push -u origin tag_name
#删除 tag
git tag -d tag_name
#tag 重命名
git tag new_name old_name
#删除远程旧 tag
git push origin :refs/tags/old_name
#推送新 tag 到远程
git push -u origin new_name
# tag 删除后又出现,需要协同开发的人执行以下命令
git pull --prune --tags
线上 fork 别人项目后,将 fork 的项目 clone 到本地,进入本地项目,设置远程源项目地址
git remote -v #查看本地仓库关联的所有远程仓库地址
#添加关联远程仓库地址
git remote add upstream(可以取其它名称) 源仓库地址
git remote -v #查看是否关联成功
#删除关联远程项目
git remote remove 仓库名 #(默认 origin) 例:git remote remove upstream
#拉取源仓库更新
git fetch upstream
#将源仓库更新合并到本地代码
git merge upstream/分支名
#更新合并自己远程仓库代码
git pull origin 分支名
#向自己远程仓库推送合并源仓库后的代码
git push