Git基础操作指南

简介: 笔记
git命令使用

git branch dev 创建一个名称为dev的分支

git checkout dev切换到dev分支上

git checkout -b dev 从当前分支上创建出一个新分支dev

git merge dev 假设当前为master分支,执行这条命令后会将dev分支合并到当前master分支,合并完成后,master分支和dev分支会变成同一个分支

git:(dev) git rebase master 假设当前为dev分支,git rebase master命令会将当dev的更改进行回退,回退到与main分支交汇的地方,将这些更改暂存到rebase目录,然后将master上面的提交拿过来,让dev分支更新到master分支那样,然后再把之前暂存的更改应用上,中间如果出现冲突,需要解决冲突,解决完冲突后,使用git add 将更新添加上,然后使用git rebase --continue继续合并。如果中间需要中断合并那么可以使用git rebase —abort。

在rebase完成后,我们dev分支已经是最新了,但是master上还是老的代码,我们需要使用git checkout master 切换到master分支上,然后使用git rebase dev将dev上面的更改移动到master上来,然后push到远程。

4.png

git checkout HEAD^ 将当前head指向上1次提交

git checkout HEAD~3 将当前head指向上3次提交

git reset HEAD~1 回滚到上一次提交

git reset HEAD 生成一个新的提交,用于将上一个提交的更改撤销掉,等价于git reset HEAD~1

git cherry-pick C3 C4 C7将其他分支上的C3提交,C4提交,C7提交拿到这个分支上面来

git rebase -i HEAD~3 合并最近的两次提交为一次提交记录,执行这个命令后会进入vim界面,然后会出现3次提交的记录

pick 115e825 queryCreditsMonth
pick 4cedfe6 queryCreditsMonth
pick b3dccfd nickname

有一下操作符: pick:保留该commit(缩写:p) reword:保留该commit,但我需要修改该commit的注释(缩写:r) edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e) squash:将该commit和前一个commit合并(缩写:s) fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f) exec:执行shell命令(缩写:x) drop:我要丢弃该commit(缩写:d)

咱们如果要把三次提交合并成一个就改成这样

pick 115e825 queryCreditsMonth
s 4cedfe6 queryCreditsMonth
s b3dccfd nickname

然后保存退出,然后会进入填写commit说明的地方,我们直接保存就好了,这样就完成了,会生成一个新的commit

commit b3dccfd2c2173fa0a6358de604b6541c8c6c644a (HEAD -> feature-dev)
Date:   Fri May 7 16:29:22 2021 +0800
    nickname
    nickname
    change credits

git commit -amend可以修改最后一次提交的commit说明

rebase出现了冲突怎么办?

假设master上跟我们改了同一行,其实就会造成冲突 例如下面这个就是我们需要解决的冲突,<<<<< HEAD 到====== 之间为其他分支上别人的更改,======到>>>>>>> change credits之间为我们自己在dev分支上的更改,我们需要解决冲突,然后使用git add对文件进行提交

@Override
    public List<CreditsMonthsUser> creditsMonthsQuery(Integer months, long year) {
<<<<<<< HEAD
        List<CreditsMonthsUser> creditsMonth = creditsMonthsMapper.creditsMonthsQuery(months, year);
        for(CreditsMonthsUser creditsMonthsUser : creditsMonth){
            String nickname = WechatUtil.decodeNickName(creditsMonthsUser.getNickname());
            creditsMonthsUser.setNickname(nickname);
        }
        return creditsMonth;
=======
        Integer a = 100;
        return creditsMonthsMapper.creditsMonthsQuery(months, year);
>>>>>>> change credits
    }
日常开发流程应该是怎么样的呢?
  1. git fetch origin dev 拉取远程的dev分支到本地,本地也会创建出dev分支

2.git checkout -b feature-dev 我们自己从dev分支创建出一个feature-dev分支,用于我们自己开发

3.我们自己在feature-dev开发了一些功能后,进行提交时,可能其他人往dev分支上提交了更新,我们需要将更新拿到本地

4.

git checkout dev 切到dev分支 git pull origin dev 将其他人在远程dev上的提交拉到本地

5.

git checkout feature-dev

git rebase dev 将dev上的更改应用到我们的feature-dev分支

然后可能会出现冲突,我们对冲突进行合并,

然后对修改后的文件使用git add +文件名 进行添加,

添加完成后使用git rebase --continue就可以继续,然后合并完成(如果需要中断rebase操作可以使用git rebase --abort)

6.git checkout feature-dev

git rebase feature-dev 就可以把feature-dev上合并好的更改拿到dev分支上

  1. git push origin dev 就可以将dev分支上的更改提交到远程
相关文章
|
4月前
|
Shell 开发工具 git
Git获取本地仓库及基础操作指令
Git获取本地仓库及基础操作指令
67 0
|
4月前
|
开发工具 git
GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件(二)
GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件(二)
|
4月前
|
算法 安全 Linux
GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件(一)
GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件(一)
|
数据采集 缓存 安全
代码版本管理笔记 | Python 程序员也应该会的 Git 基础操作
代码版本管理笔记 | Python 程序员也应该会的 Git 基础操作
|
Shell 开发工具 git
Git笔记(二)---- Git的基础操作
Git笔记(二)---- Git的基础操作
76 0
|
Shell Linux 开发工具
Git基础操作5 | 青训营笔记
回看了一下自己的git基础操作笔记,感觉少了一个关键步骤——回溯版本。要知道git设计的意义其实就是管理版本,让自己在一些极端情况下不至于丢掉几个月的工作成果。 曾经见过一个非常形象的比喻,git就好比提供给你打游戏的时候存档的服务,你在过完一些关键关卡或者在打boss前要先存档避免浪费大量时间 本期教程就手把手来记录一下我的回溯学习过程。
Git基础操作5 | 青训营笔记
|
Shell 开发工具 git
Git基础操作6 | 青训营笔记
上期介绍了如何用git的回溯功能来实现代码世界的时空跳跃。但是问题很明显:如果跳回的时间又觉得有点远,能跳回较近的时间吗?本期我们就来看看这个。
Git基础操作6 | 青训营笔记
|
Shell Linux 开发工具
Git基础操作4 | 青训营笔记
上期我们介绍了如何在本地创建自己的空白git仓。小问题:回顾一下用的什么命令? 答案: git init 接上期,git项目除了可以本地创建空白的之外,还可以在服务器等远程仓库里复制一个到本地电脑。
Git基础操作4 | 青训营笔记
|
Shell 开发工具 git
Git 基础操作3 | 青训营笔记
接上期,我们配置好了Git,也学会了如何添加用户名和邮箱,学会了区分全局配置和系统配置。今天开始就是正式的Git原理讲解和使用技巧了。
Git 基础操作3 | 青训营笔记
|
Shell 开发工具 git
Git基础操作2 | 青训营笔记
接上期,我们浅浅介绍了git的配置。下面我们将继续:
Git基础操作2 | 青训营笔记