一、git是什么
-
git是一款分布式项目版本管理的工具
git:分布式
svn:集中式
二、git常用命令
- git init
在当前项目的目录下生成一个.git隐藏文件夹,为了跟踪项目代码
-
git add:将工作区的文件添加到暂存区
-
git commit:将暂存区的文件提交到到本地仓库(也称分支)
-
git push:将本地仓库快照提交到远程
将本地项目提交到远程的托管平台
常用托管平台:github,码云,gitlab....
提交到远程仓库之前:
1.在github上创建一个远程仓库
2.创建ssh(公钥和密钥)
在本地上通过命令生成: ssh-keygen
ssh-keygen -t rsa -b 4096 -C "[email protected]"
会自动生成
id_rsa(密钥)
id_rsa.pub(公钥)
3.本地创建一个用户名和邮箱
git config --global user.name 'hjl888666'
git config --global user.email '[email protected]'
测试是否与远端连通:
ssh -T [email protected]
成功提示:
Hi w3cteching! You've successfully authenticated, but GitHub does not provide shell access.
4.创建本地与远程仓库关联(git remote)
格式:git remote add 远程主机名 远程仓库地址
git remote -v :查看远程仓库地址信息
例如:
git remote add origin [email protected]:w3cteching/test1909_pro.git
5.将本地代码推送到远端仓库
git push -u origin master
如果git push报错,首先咱们先拉取到本地,再推送
git pull origin master --allow-unrelated-histories
- git remote:
格式:git remote add 远程主机名 远程仓库地址
git remote -v :查看远程仓库地址信息
例如:
git remote add origin [email protected]:w3cteching/test1909_pro.git
- git pull
git pull origin master --allow-unrelated-histories
-
git fetch:拉取,但不合并,然后再用merge合并
-
git clone:将远程的仓库项目克隆到本地
git clone 远程仓库地址
例如:git clone [email protected]:w3cteching/test1909_pro.git
-
git status:查看当前文件状态
-
查看提交日志:
git log
简写:git log --pretty=oneline 只显示commit id 和提交说明
git reflog:查看所有历史提交记录
- …
记住:git管理的不是文件,管理的是”修改“
如何添加协作者:
12.分支
-
分支是什么?主要为了方便项目协作管理的技术(即:分支之间是独立互不影响的)
-
分支类型
- 默认git有一个主分支 master,主要用于发布产品的分支
- dev分支:开发分支
- feature:开发新功能分支
- hotfix:修复bug的分支
- 成员分支:成员名+功能模块名
-
分支常用命令
- git branch 回车
git branch * master //注:前面有*代表是当前分支
- 创建分支
git branch dev
- 切换分支
git checkout 要切换的分支名
- 切换并创建分支
git checkout -b 新分支名
- 合并分支
git merge 要合并的分支名
合并时可能会出现冲突:
如果本地分支合并出现冲突,要手动解决
如果往线上推送出现冲突,那先git pull,手动解决冲突后,再git push
- 删除分支
git branch -d 分支名 //合并过的用-d删除 git branch -D 分支名 //未合并过的用-D删除
- 如何将本地分支推送到远程
git push origin 要推送分支名
注意:如何默认推送当前分支到远端
git push --set-upstream origin dev
- 今天的任务(8月3号)
- 熟练掌握git常用命令并实现本地与远程代码推送和克隆
- 组长将组员加入自己创建的码云分支
- 晚自习下课前用语音在微信群说课
- 牛客网刷题2套(1套2道,并把成绩截图到小组群或微信群)
- 明天早上7点15进班上早自习
git分布式管理
svn集中式管理
常用命令:
工作区—>暂存区—>仓库
git add 要添加的位置或文件
git commit -m ‘提交说明’
git remote 本地与远程建立连接
git push
git branch
git checkout -b
git clone 远程git地址 克隆
一、历史回退管理
- 仓库中历史回退:
git reset --hard commit_id
例如:git reset --hard df5991e
-
放弃工作的修改
- 第一种情况:直接放弃
git checkout -- 要放弃的文件路径 例如:
- 第二种情况:已经添加到暂存区,如何放弃
第一步:从暂存区回退到工作区 git reset HEAD 要回退的文件路径 第二步:再放弃工作的修改(即重复执行第一种情况的操作) git checkout -- 要放弃的文件路径
二、分支补充
- 查看远程分支
git branch -r
注意:如果查看的远程分支不全面,需要用git fetch origin,然后再git branch -r
- 查看所有分支
git branch -a
- 删除分支
删除本地分支:git branch -d或-D 要删除的分支名
删除远程分支:git push origin :要删除的分支名
三、tags
- tag理解
tag:主要用于发布版本号
version定义规则
主版本号:表示项目的重大架构变更
次版本号:表示较大范围的功能添加和变化
增量版本号:一般表示重大bug修复
比如1.2.4 —— 1 是主版本号,2 是次版本号,4 是增量版本号。
- tag常用命令
查看tag:
git tag
创建tag:
git tag 版本号
git tag 版本号 commit_id
删除远程tag: git push origin :要删除的tag
删除本地tag: git tag -d 要删除的tag名