前端所有的git使用场景和命令都在这里啦,持续更新~~~
安装 git
要检查是否安装了Git,在cmd终端运行:
$ git version
git version 2.27.0.rc1.windows.1
配置 git
我们只需要配置一些东西
git config --global user.name "前端xx" # 你的名字
git config --global user.email xx@qq.com # 你的邮箱
name和email对应上就设置好了
提交到github 电脑git要登github账号; 提交到gitlab 电脑git要登gitlab账号
自己上传新项目代码到仓库
git创建仓库,并提交代码(第一次创建并提交)
git init //把这个目录变成Git可以管理的仓库
git add README.md // 文件添加到仓库
// 不但可以跟单一文件,还可以跟通配符,更可以跟目录。
git add . // 一个点就把当前目录下所有未追踪的文件全部add了
git commit -m "first commit" //把文件提交到仓库
git remote add origin url.git // 关联远程仓库 https方式
// 例如:git remote add origin git@github.xxx/practice.git
git push -u origin master //把本地库的所有内容推送到远程库上
第一次提交本地仓库到远程,使用密钥SSH的方式
在git仓库-个人中心的密钥设置中,填入自己电脑的密钥
git init
git add . // 全部文件提交到暂存区,后续改动可以追踪文件的变化
git commit -m "first commit" // 提交到本地仓库
git remote add origin SSH地址 // 关联远程仓库 SSH方式
git push -u origin master // 将本地库推送到远程
从仓库克隆新项目代码到本地
git clone github.xxx/practice.git
git clone代码之后 远程分支有很多,怎么把远程分支弄下来
git fetch
git checkout -b feature origin/feature // 把feature弄下来 本地feature对应远程feature
远程别人新建了分支,本地怎么切换分支
git fetch
git checkout -b feature origin/feature
从远程仓库中拉一个本地不存在的分支:
git checkout -b 本地分支名 origin/远程分支名
该命令会创建一个本地分支并,并与远程分支关联,并自动切换到这个本地分支。
别人新建的分支,你看不到,想要拉到本地来
别人新建了分支branch2
git branch -a // 查看所有分支:本地分支和远程分支
git fetch origin branch2 // 把远程的branch2抓下来 这个抓下来只是能看到分支
git branch -a // 此时就能看到branch2
git checkout -b branch2 origin/branch2 // 把远程的branch2代码搞下来
相关的还有以下命令
1. 刷新远程分支的命令行:git remote update origin -p
2. 抓取远程分支,需要切换:git fetch origin branch_name
3. 本地分支与远程分支相关联,便于git pull, git push ,
使用 git branch --set-upstream-to=origin/<branch>
关于分支
查看远程分支: git branch -a
查看本地分支:git branch
创建分支:git branch <name> // <name>是分支名
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name> // 把其他分支合并到master后,还要git push
删除本地分支:git branch -d <name>
新建分支, 你创建一个新分支并提交
git branch -a // 查看所有分支:本地分支和远程分支
git branch 新分支
git checkout 新分支 // 切换到新分支上
git branch -a // 查看新分支是否建成功
git push --set-upstream origin 新分支 // 把新分支提交到代码库 别人也能看见
你创建一个新分支,指定推送到远程某分支
git branch -b task // 新建task分支 并切换到task分支
// ......代码开发完成后,此时我在task分支
// 依旧要先git add . 和 git commit -m "这里写提交的是什么内容"
git push origin task // 将所在的分支指定推送到task
git push origin major // 将所在的分支指定推送到major
// .......又做了一些开发
git push origin task // 将所在的分支指定推送到task
// 这样每次提交都要把分支带上 因为本地的task没又和远程的task关联上
git branch --set-upstream-to=origin/<taskBranch> // 将本地分支与taskBranch关联上
// 关联后就可以直接git push了
// 推荐第一次提交新创建的分支,用 git push --set-upstream origin 新分支 这种方式,第一次就关联上了
删除分支
删除本地分支 git branch -d dev
删除远程分支 git push origin --delete branch, 该指令也会删除追踪分支
修改分支名字
- 本地分支重命名(还没有推送到远程)
git branch -m oldName newName
- 远程分支重命名 (已经推送远程-假设本地分支和远程对应分支名称相同)
第1步: 重命名远程分支对应的本地分支
git branch -m oldName newName
第2步:删除远程分支
git push --delete origin oldName
第3步:上传新命名的本地分支
git push origin newName
第4步:把修改后的本地分支与远程分支关联
git branch --set-upstream-to origin/newName
合并分支
git merge <name> // 合并某分支到当前分支
git push // 把合并后的内容整个分支一起提交
// 例如: 把其他分支合并到master后,还要git push
关于撤销操作
git add的撤销:git reset
git commit的撤销:git commit --amend 撤销提交到本地版本库
git push的撤销: git reset --soft HEAD~1
git merge取消合并: git merge --abort
git 合并未提交,撤销合并:
git reset --hard HEAD~1
git 合并已提交,撤销合并:
git reset --soft:
将分支回退到指定提交,工作区维持现状不变,暂存区会在现有基础上增加该commit之后的提交。
git reset --mixed:
(默认操作)将分支回退到指定提交,暂存区也被同步为该指定提交,工作区保持不变。
git reset --hard:
将分支回退到指定分支,暂存区和工作区都会被同步为该指定的提交。
git提交前报eslint错误 提交忽略eslint
git commit --no-verify -m "提交时的注释"
追加修改到最后一次commit
适用对最后一次提交失误的地方进行修改,提交后而不产生新的commit记录
追加修改到最后一次commit
第一步:修改文件 然后git add指定的文件 (注意对文件只需要add不需要commit)
第二步:git commit --amend
第三步:输入 r
第四步:输入 :wq 回车
第五步:推送到远程: git push --force
修改上一次提交的备注信息
第一步:git commit --amend
第二步:输入 e
第三步:修改提交的备注信息
第四步:按esc键
第五步:输入 :wq 回车
第六步:推送到远程: git push --force
git 合并远程仓库上多个提交记录
- 将最后两次提交记录去掉,最后两次的提交内容归到倒数第三次提交上
第一步:git reset --soft HEAD~2
第二步:git commit --amend
第三步:按esc键
第四步:输入 :q 回车
第五步:推送到远程: git push --force
- 将最后两次提交记录,归结到一次新的提交记录上
第一步:git reset --soft HEAD~2
第二步:git commit -m "这次提交包含了之前最后两次的内容"
第三步:推送到远程: git push --force
vscode装的好用的git插件:
git graph
git history
git lens
电脑配置多个git账号
控制面板\所有控制面板项\凭据管理器
持续更新中.....