git

git常用命令

# 1. 强制拉取远程更改,丢弃本地更改,用于需要合并和冲突,已远端为主

https://juejin.im/post/5ee649ff51882542ea2b5108

# 1.1 查看本地分支
git branch

# 1.2 查看远程分支
git branch -r

# 1.3 查看所有分支
git branch -a

# 1.4 切换分支
git checkout 分支名

# 2:撤销


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       #推送所有分支,注意:拉取下来需要切换分支才有非主分支的,或者有其他分支的提交也可以

# 4: git 用户名密码推送,解决推送时候 403 问题 ++

https://账号:密码@github.com/learn01sz/code.git

图片描述

# 5.创建并切换到新分支

git checkout -b 分支名 #创建并切换到分支名 ++
git branch 分支名 #创建分支名

# 6.更新分支代码并提交

git add *
git commit -m "提交说明"
git push origin panda

# 7.合并分支

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

# 8.删除远程分支命令

git push origin --delete <远程分支名称> +++

# 9.删除本地分支

git branch -D <本地分支名称> +++

# 10. 发布版本

git tag -a v1.2.4 -m "my version 1.2.4"
git push origin v1.2.4

# 11.合并指定提交 ID (常用)

git checkout <分支名称>
git cherry-pick a8bc7986716954cb34a8d929c25c5b374e77c702 ++++
git push

# 撤销合并
# 还没 push →
git cherry-pick --abortgit reset --hard

# 已经 push →
git revert <commit>

# 12.Git 拉取不下代码,认识 stash 命令

git stash #封存修改
git stash pop #把修改还原

# 13.删除指定的一次 stash 内容,名称可以通过 git stash list 获得

git stash drop xxx

# 删除所有 stash 内容 / 清空 Git 栈
git stash clear

# 14. 删除某条 commit 记录

git reflog #得到最近的提交记录,能获取 commitId
git rebase -i commitID #比如 git rebase -i 9efb5ce

# 15. 给仓库打 tag

#查看所有 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

# 16. fork 项目更新

线上 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
上次更新: