一、git基本概念
git 分为工作区、暂存区、本地仓库、远端仓库
git add 把文件提交到暂存区
git commit 暂存区提交到本地仓库
git push 本地仓库推送到远端仓库
git restore --staged / git rm --cache 把指定文件从暂存区回退到工作区
二、git 命令详解
1、基础命令
git init -->仓库初始化
git status -->查看状态
git add <filename>/git add . -->把文件从工作区提交到暂存区
git rm --cache <filename>/git restore --staged <file> -->把文件从暂存区回退的工作区
git commit -m "" -->把文件从暂存区提交到本地仓库
git log -->查看日志
git reflog -->查看所有版本
可以通过 git reset --hard hash 回到到未来版本
git branch -a -->查看所有分支
git branch 分支名 -->创建分支
git branch -d 分支名 -->删除分支
git switch 分支名 -->切换分支
git push 后打版本号
git tag v0.1(版本号) master
git push --tags
git restore 文件名 用暂存区的内容恢复工作区
git reset ---> 回退到历史版本
--hard hash 更新分支,重置暂存区、重置工作区
--soft hash 更新分支,不重置暂存区、不重置工作区
--mixed hash 更新分支,重置暂存区、不重置工作区
2、githup-flow(PR流程)
1.克隆代码或者更新代码到本地
git clone -b 分支名 地址
git clone --depth=1 git@gitee.com:lebulangqiang/flask_demo.git
--depth=1表示克隆最新版本
git pull
2.基于master分支创建分支并切换到自己的分支
git branch -a 查看所有分支
git branch jackwang master 基于master创建jackwang分支
git switch jackwang 切换到jackwang分支
3.在自己的分支(jackwang)上做开发并实施版本控制
git add / git commit
4.把自己的工作成果(jackwang分支)同步到服务器上
git push -u origin jackwang
5.在线发起合并请求,请求将自己的工作成果合并到master分支
如果Pull Request(Merge Request)被接受,那么工作成果就会出现在master分支上
3、git-flow
两个长线分支: master、develop
三个断线分支:feature、release、hotfix
1.基于远端develop分支创建本地develop分支
git branch develop origin/develop
2.基于本地develop分支创建功能分支
git branch feature/user develop
3.切换到功能分支feature/user
git switch feature/user
4.在本地分支做版本控制
git add . / git commit -m "具体内容"
5.切换到本地develop分支
git switch develop
6.合并代码(两种方式)
git rebase(变基)
git rebase develop(本地开发分支)
git switch develop(切换到本地开发分支)
git merge feature/user(把自己的分支合并到本地开发分支)
git push -u origin develop(把代码推到远端开发分支)
git merge(直接合并)
git merge --no-ff 分支名(feature/user) --->禁用快速合并,否则历史版本丢失
git push -u origin develop(把代码推到远端开发分支)
三、码云使用教程
1、ssh公钥设置
2、Git 全局设置
git config --global user.name "王强"
git config --global user.email "1063410061@qq.com"
3、创建git仓库
mkdir notes
cd notes
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin git@gitee.com:lebulangqiang/notes.git
git push -u origin "master"
4、已有仓库
cd existing_git_repo
git remote add origin git@gitee.com:lebulangqiang/notes.git
git push -u origin "master"
四、git 代码回退相关操作
在工作区修改文件但还没有git add 到暂存区
git checkout [filename] //放弃工作区某个文件的修改
git checkout . //放弃工作区中全部文件的修改
git diff [filename] //查看修改的具体内容
撤销已经提交到暂存区的文件(已经git add 但还未 git commit)
git reset HEAD [filename] //撤销已经提交到暂存区的文件
git reset HEAD . //撤销暂存区所有提交
撤销后暂存区的内容没有了,工作区保留原有的修改记录
对已经提交到本地仓库做撤销(已经git commit 但还未 git push)
git reset --soft [commit id] // 撤销commit,保留 git add,保留工作区
git reset --mixed [commit id] //撤销commit,撤销 git add,保留工作区
git rest --hard [commit id] //撤销commit,撤销git add,撤销工作区