1、git是什么
Git是一个开源的分布式版本控制系统,用于追踪代码的更改。Git将代码存储在本地仓库中,使得每个开发人员都可以在自己的计算机上拥有完整的项目副本,并能够独立地进行开发、测试和修改
github 远程代码托管平台-->创建远程仓库,备份,回溯 实现项目共同开发,进行分支管理
2、git安装
官网下载地址:https://git-scm.com/downloads
下载完成之后打开git bash,配置全局用户名和邮箱
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
配置SSH
# 生成sshkey
ssh-keygen -t rsa
#执行完毕上面命令之后,按几次回车
#查看公钥的内容,复制到git的sshkey位置
cat ~/.ssh/id_rsa.pub
创建本地git仓库
git init
3、git基本使用
①git的状态模型
- 工作区(Workplace):工作区是进行日常开发的地方,也就是编辑、创建、删除文件的地方。当、在工作区修改文件后,Git 会知道这些文件发生了变化,但还没有记录这些变化。
- 暂存区(Index 或 Cache):暂存区是一个中间区域,用于暂存即将提交到本地仓库的文件更改。当对工作区的文件进行修改后,需要使用 git add 命令将这些更改添加到暂存区。这个过程通常被称为“暂存”更改。在暂存区的更改是准备提交到本地仓库的。
- 本地仓库(Local Repository):本地仓库存储了所有已经提交的更改。当你使用 git commit 命令将暂存区的更改提交到本地仓库时,这些更改就被永久地保存了下来。本地仓库通常存储在你自己的计算机上。你可以使用 git log、git diff 等命令查看本地仓库的提交历史和文件差异。
- 远程仓库(Remote Repository):远程仓库是存储代码的服务器,通常位于互联网上。可以将本地仓库的更改推送到远程仓库,以便与他人共享你的工作成果。同时,也可以从远程仓库拉取他人的更改到本地仓库。常用的远程仓库服务有 GitHub、GitLab 和 Bitbucket 等。使用 git push 命令将本地仓库的更改推送到远程仓库,使用 git pull 命令从远程仓库拉取更改。
②仓库管理
工作区(workpace->暂存区(index)
git add . #当前文件夹以及子文件夹
git add fileName #某个文件
暂存区(index)->本地仓库(local repository)
git commit -m '备注提交内容'
克隆远程仓库->本地仓库
git clone xxxx地址 (不加分支默认master)
#默认拉取master分支代码
git clone git@gitee.com:munumu/xh.git
克隆远程仓库其他分支
git clone -b xxxxx分支 xxxx地址 (不加分支默认master)
#拉取dev分支代码
git clone -b zjx git@gitee.com:munumu/xh.git
工作常用步骤
git status #查看当前仓库状态
git add . #添加到暂存区
git commit -m 'xxxx' #添加到本地仓库
git pull # 同步远程仓库到本地,检查远程仓库是否比本地版本更高一些
git push #推送到远程仓库
③日志查看
提交日志
git log #日志
git log --pretty=oneline #美化输出,行格式显示
git log --pretty=oneline --abbrev-commit #简化版本号 行格式显示
历史命令日志
#版本相关,如果再版本回滚时误操作了,可以通过这个地方来找历史的版本号和命令进行恢复
git reflog
④撤销和回退
撤销修改
git checkout xxx #撤销某个文件修改,这里的数据还没有提交到暂存区
git checkout . #撤销当前文件夹内所有修改
git reset --hard HEAD #放弃暂存区中所有的修改和新增
版本回退,慎用
git reset --hard HEAD #放弃当前所有修改,回退到当前版本
git reset --hard HEAD^ #回退到上一个版本
⑤分支管理 主分支(master 稳定运行的正常版本)
查看分支
git branch #查看本地分支
git branch -a #查看所有分支
创建分支
git checkout -b xxx分支名字 #创建并切分支
git branch xxx分支 #创建
git checkout xxx分支 #切分支
合并分支到当前分支
git checkout master #切换到master分支
git merge xxx分支名字 #合并分支
删除分支
git branch -d # 删除已合并的分支,有未合并代码不允许删除
git branch -D # 强制删除有未合并代码的分支
git push origin --delete dev_new #删除远程分支
本地分支和远程分支第一次关联
git push origin xxx分支名字
合并远程分支(master分支之下)
git checkout master
git pull origin xxx分支名字 #远程拉取XX分支
git merge origin /xxx分支名字
git push