工作中如何使用git

本文详细介绍了Git的工作流程和基本操作,重点讲解了在工作中如何利用git rebase、git merge、git cherry-pick、git revert和git stash等高级功能解决问题。通过实例解析了各个命令的使用场景,强调了配置git alias提升开发效率的重要性,旨在帮助开发者更好地管理和协作代码。
摘要由CSDN通过智能技术生成

目录

一、Git 的工作流程分为以下几步

二、Git 基本操作

git add 添加文件到暂存区

git commit

git pull

git fetch

git branch

三、工作中使用 Git 解决问题的场景

git rebase 让你的提交记录更加清晰可读

git rebase 的使用

git merge 和 git rebase 的区别

git rebase 交互模式

使用 git cherry-pick 获取指定的 commit​​​​​​​

使用 git revert 回滚某次的提交

使用 git stash 来暂存文件

不同的工作区域撤销更改

配置 git alias 提升工作效率

三、总结


一、Git 的工作流程分为以下几步

1.在工作区开发,添加,修改文件。

2.将修改后的文件放入暂存区。

3.将暂存区域的文件提交到本地仓库。

4.将本地仓库的修改推送到远程仓库。

二、Git 基本操作

git add 添加文件到暂存区

# 添加某个文件到暂存区,后面可以跟多个文件,以空格区分
git add xxx
# 添加当前更改的所有文件到暂存区。
git add .

git commit

# 提交暂存的更改,会新开编辑器进行编辑
git commit 
# 提交暂存的更改,并记录下备注
git commit -m "you message"
# 等同于 git add . && git commit -m
git commit -am
# 对最近一次的提交的信息进行修改,此操作会修改commit的hash值
git commit --amend

git pull

# 从远程仓库拉取代码并合并到本地,可简写为 git pull 等同于 git fetch && git merge 
git pull <远程主机名> <远程分支名>:<本地分支名>
# 使用rebase的模式进行合并
git pull --rebase <远程主机名> <远程分支名>:<本地分支名>

git fetch

与 git pull 不同的是 git fetch 操作仅仅只会拉取远程的更改,不会自动进行 merge 操作。对你当前的代码没有影响

# 获取远程仓库特定分支的更新
git fetch <远程主机名> <分支名>
# 获取远程仓库所有分支的更新
git fetch --all

git branch

# 新建本地分支,但不切换
git branch <branch-name> 
# 查看本地分支
git branch
# 查看远程分支
git branch -r
# 查看本地和远程分支
git branch -a
# 删除本地分支
git branch -D <branch-nane>
# 重新命名分支
git branch -m <old-branch-name> <new-branch-name>

三、工作中使用 Git 解决问题的场景

git rebase 让你的提交记录更加清晰可读

git rebase 的使用

rebase 翻译为变基,他的作用和 merge 很相似,用于把一个分支的修改合并到当前分支上。

如下图所示,下图介绍了经过 rebase 后提交历史的变化情况。

现在我们来用一个例子来解释一下上面的过程。

假设我们现在有2条分支,一个为 master,一个为 feature/1,他们都基于初始的一个提交 add readme 进行检出分支,之后,master 分支增加了 3.js 和 4.js 的文件,分别进行了2次提交,feature/1 也增加了 1.js 和 2.js 的文件,分别对应以下2条提交记录。

此时,对应分支的提交记录如下。

master 分支如下图:

feature/1 分支如下图 

结合起来看是这样的 

 

此时,切换到 feature/1 分支下,执行 git rebase master,成功之后,通过 git log 查看记录。 

所以,我们的提交记录就会非常清晰,没有分叉,上面演示的是比较顺利的情况,但是大部分情况下,rebase 的过程中会产生冲突的,此时,就需要手动解决冲突,然后使用依次 git add git rebase --continue 的方式来处理冲突,完成 rebase 的过程,如果不想要某次 rebase 的结果,那么需要使用 git rebase --skip 来跳过这次 rebase 操作。

git merge 和 git rebase 的区别

不同于 git rebase 的是,git merge 在不是 fast-forward(快速合并)的情况下,会产生一条额外的合并记录,类似 Merge branch 'xxx' into 'xxx' 的一条提交信息。

另外,在解决冲突的时候&

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Penny399

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值