Git学习

一、git常用命令

git init

基本用法:git init
用来初始化一个仓库,初始化后当前文件目录中会出现 .git隐藏文件目录,当前文件目录就是workspace(工作区),工作区有一个子目录.git。

git add

基本用法:git add < path >
通过gith add < path >可以把path对应的文件添加到index(暂存区)区域

git commit

基本用法:git commit -m “descripe”
把index(暂存区)中的文件提交到repository(本地仓库)中

git push

基本用法:git commit origin master
origin代表远程仓库
master 代表要提交的主分支(也可以是其他分支)
将repository(本地仓库)推送到(remote)远程仓库

git clone

基本用法:git clone SSH/HTTP
将(remote)远程文件克隆到本地,克隆的仓库就直接可以当作(repository)本地仓库了

git pull

基本用法:git pull origin master
origin代表远程仓库
master 代表要拉的主分支(也可以是其他分支)
将远程仓库内容直接拉到本地工作区

git checkout

基本用法:git checkout dev
分支切换

git branch

基本用法:git branch < 分支名 >
创建分支也可以查看分支

二、git基础原理

git 四个区域

在这里插入图片描述
workspace: 工作区,平时存放代码地方
index:暂存区,
repository:仓库区(本地仓库)
remote:远程仓库,托管代码的服务器

git文件的状态

在这里插入图片描述
untracked(未跟踪):一般是在工作区创建的新文件还没有加到git库中,不参与版本控制。通过git add命令状态变成staged。
modified(修改未暂存):一般是提交后再修改的文件,还未git add进入暂存区。
staged(暂存未提交):一般是文件git add后,还未git commit。
常见状态转换
常见状态转换如图:
在这里插入图片描述

三、git常见情况·

git push冲突

使用git push origin develop 出现冲突报错
原因:在我们git pull 之后修改文件,再git add、git commit后,最后git push 推送带远程仓库。git pull 与 git push 之间有其他人已经git push到远程仓库把文件修改成另外一个版本,而我们进行git push的文件是上一个版本的文件,所以git push可能会造成冲突。
解决:首先我们调用git pull去拉取分支下来,然后会在冲突的文件里记录冲突的内容,手动去解决冲突,然后再git commit和git push。

git commit合并

多个commit合并成一个commit
在使用git的时候,我们可能针对同一个任务由多次提交,比如我们针对同一个feature可能由多个人修改了不同部分但是多个提交让我们的版本管理显得比较凌乱,此时我们可以合并多个commit为一个。
首先假设我们有三个commit,我们想把最近的三个commit合并为一个commit,那么此时我们可以使用git rebase。

四、具体实践

在这里插入图片描述

实际开发

流程:
git checkout feature //切换分支到feature
git pull origin feature
…… //具体功能开发
……
git rebase -i HEAD~(n)
git rebase develop //这个时候一般有冲突,再解决冲突
git push origin feature //提交
git checkout develop //切换分支到develop
git merge feature //将develop分支与feature分支进行合并

bug及时定位

上线时一段时间遇到bug,要及时定位开始出错的版本
git bisect 区间,用二分操作方及时找到开始出错版本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值