Git常用命令

Git

Git:分布式版本管理系统。
对于一个受Git管理的仓库,其各个状态的示意图如下:
在这里插入图片描述

  • 工作区:本地项目目录。
  • 暂存区:执行了add命令之后会将修改的代码存放到暂存区中。
  • 本地仓库:执行了commit命令之后会将代码放入本地仓库中,即项目的**.git**目录下。
  • 远程仓库:远程的代码仓库,只有在本地仓库中的代码执行了push之后才会提交到远程仓库。

 

常用命令

# 修改内容添加到暂存区
git add . or git add filename
# 将暂存区的内容提交到本地仓库,每次commit都会生成一个节点
git commit -m "message"
# 将本地仓库的内容合并到远程仓库
git push


# 查看提交日志
git log
# 查看某次提交到具体内容
git show commit_id

# 查看暂存区做的改动
git diff --cached
# 查看所有的改动
git diff

# 回滚操作
# 恢复到某一次提交
git reset commit_id
# 将某一次提交到修改恢复回去
git revert commit_if
# 查看可以恢复日志
git reflog

 

团队协作常用命令

# 创建新分支 - 不切换,head仍然在当前分支
git branch branch_name
# 根据当前分支创建新分支并且切换 - head指针指向新分支
git checkout -b branch_name
# 根据远程分支创建新分支并且切换
git checkout -b branch_name origin/branch_name

# 切换分支
git checkout branch_name 

合并分支:merge和rebase

合并分支有merge和rebase这两种方式,这两种方式在最终生成的节点结构有所区别。

  1. merge
(feat02)$:git merge feat01

在这里插入图片描述
在执行merge命令时会创建新的节点,同时将别的分支的内容合并到该节点。

  1. rebase
(feat01)$:git rebase feat03

在这里插入图片描述
在feat01分支下执行feat03会将feat01分支的内容线性的合并到feat03后面。工作中建议常用这种!
使用rebase发生冲突时和merge不太一样,merge是一次性解决的,而rebase可能需要多次解决,每解决一次需要用

git rebase --continue

查看是否还有冲突需要解决,同时在解决的时候注意feat03才是当前分支,反倒是feat01是输入分支,这是因为是将feat01分支的内容连接在feat03分支的后面。
rebase结束之后会将本地的内容与远程的断裂开来,这个时候可以直接执行

git push -f

强制性的将本地的覆盖掉远程的。

将多次commit合并成一次

有时候可能自己的提交是同个功能上的修修补补,提交了多次commit,这个时候可以时候使用rebase将多个commit合并成一个。

# 查看提交记录
git log
# commit_id为要合并的多个commit之前的一个commit
git rebase -i commit_id
# 进入vim编辑模式

会有类似如下的内容
在这里插入图片描述
这里的pick就是要选择的命令格式,使用squash(可以缩写为s)可以将该commit和前一个commit合并。即假如要将C和B进行合并,则可以修改成

s xxxx C

!wq保存后退出,会第二次进入vim编辑模式,修改提交信息后保存退出,就可以在日志中看到将commit合并成一个了。
参考:使用rebase将多个commit合并成一个

 

Git Workflow

Git Workflow指的是Git的分支模型,经典的为:

  • master: 一般master分支不能够改动代码,是作为发布分支使用。
  • develop:分支作为开发分支的主干,稳定的,最新的分支,用于合并其他分支。
  • feature:新功能分支。
  • release:发布分支,只能接受bug的修复。
  • hotfix:紧急修复分支,在生产环境中出现了问题需要紧急修复。

 

命令可视化网站

Visualizing Git
Learn Git Branching

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值