1.准备工作
// 配置用户的名字和邮箱📮
git config --global user.name "xxx"
git config --global user.email "xxx"
2.初始化
// 执行一次生成一个.git隐藏文件 通过cmd + shift + .查看
git init
git add .
git commit -m 'init'
git remote add origin https://..........git
git push -u origin master
// 第一次推送到远程仓库建立连接
3.提拉合提推
// 克隆代码,拉到本地
git clone XX (https://gitlab.xxx.git) 项目地址
// 工作区添加到暂存区
git add .
// 暂存区提交文件到仓库
git commit -m '提交说明'
// 拉取最新的代码
git pull
// 推送到远程仓库
git push
4.分支创建、切换、更换现有分支名称操作
// 拉取远程分支并本地创建该分支
git checkout -b dev-2022 origin/dev-2022
// 查看本地分支
git branch
// 查看远程分支
git branch -r
// 查看远程和本地分支
git branch -a
// 更新远程最新分支
git remote update origin -p
// 查看目前在哪个分支
git branch -l
// 本地创建且切换该分支
git checkout -b new-dev
// 删除本地分支
git branch -d dev-2022
// 删除远程分支
git push origin -d dev-2022
// 还原本地修改文件
git checkout .gitignore 文件夹名称
// 修剪本地分支缓存
git fetch -p origin
// 1、修改本地分支名称
git branch -m oldName newName
// 2、将本地分支的远程分支删除
git push origin :oldName
// 3、将改名后的本地推到远程,并将本地分支与之关联
git push --set-upstream origin newName
5.暂存区操作
// 本地开发功能发现切错分支,先暂存
git stash
// 然后切换想要开发的分支
git checkout stage
// 将本地暂存的代码在还原到正确分支
git stash pop
6.合并和解决冲突操作
1.代码少的场景,both 都保存,选择要删除的东西
2.不需要test分支的代码,去远程复制prod的代码,替当前文件
3.不需要prod分支的代码,去远程复制test的代码,替当前文件
4.文件代码复杂,冲突严重,需要和开发进行商量删除
5.解决冲突后,防止遗漏未修改的冲突代码.全局搜索 <<<<<<< HEAD 进行排查
// 将test代码合并到prod
git checkout prod
git pull
git merge test
只合并某次提交记录(test合prod某次提交)
git checkout prod
// 拉,保证查看到所有人在该分支的提交记录
git pull
// 查看要往prod分支合并的 commit编号(复制)
git log
// 切回要合并的 test分支
git checkout test
// 粘贴编号开始合
git cherry-pick 编号
git push
7.git 备份操作(打tag)
// 创建本地 tag 分支
git tag tag-2022-03-10
// 将本地 tag 推送到远程
git push --tag
// 查看 tag 分支
git tag
// 删除本地 tag分支
git tag -d tag-2022-03-10
// 删除远程 tag分支
git push origin :refs/tags/tag-2022-03-10
// 或者
git push --delete origin tag-2022-03-10
8.查看历史记录
// 查看详细版本日志(包括commit 编号)
git log
// 查看简略版的记录
git log --oneline
// 查看所有记录包括删除的记录
git reflog
// 查看远程分支的地址
git remote -v || cat .git/config
9.版本回退
// 回退到指定版本,查看 commit 编号复制
git log
// 回退到指定版本的编号
git reset --hard 要退的编号
// 回退到上一版本
git reset --hard HEAD^
^这个是指回退到上一个版本,回退到上两个版本一次类推 ^^ ,当然往上100个版本写100个^比较容易数不过来,所以写成 HEAD~100
// 1.回滚本地仓库到指定版本
git reset --hard c60ec9681f4f68d37f08d0f2cb407001a01
// 2.远程仓库回滚
git push -f
可以在github上快速新建到哪一版本的分支
新建分支----把编码复制进去