git使用

概述:

 如下图可以看出,Git版本控制有三个区,分别是工作区、暂存区、本地仓库,简单的理解的话,

未执行 git add 命令的话是在工作区,

执行了  git add 之后到了暂存区,

执行了 git commit 之后到了本地仓库中。

这里简单的描述一下基本的命令,然后带大家看看Git的进阶命令。

branch管理

  1. git checkout -b feature/Hide-ecpm origin/feature/Hide-ecpm   // 克隆远端分支origin/feature/Hide-ecpm到本地feature/Hide-ecpm

  2. git checkout -b feature/Hide-ecpm  // 从当前分支新建一个分支feature/Hide-ecpm ,例如 git pull master最新提交后 基于master创建新的纯净分支  ,不依赖任何分支

  3. git branch -d [branchName]  //删除分支,未合并分支不能被删除

  4. git branch -D [branchName] //强制删除分支

  5. git merge [branchName] 将branchName合并到当前分支

  6. git merge [branchName] 将branchName合并到当前分支

  7. git commit --amend 修改上次的提交信息,push后不会增加新的commit记录,但是会修改本次的commithash(也可以理解为删掉了最新的一次commit,重新又提交了一次)

演示:

git commit --amend // 修改commit msg

rebase branch

  • git pull --rebase origin [branchName] = git fetch + git rebase

          // 假设当前分支dev, commit 为 a b c d e

         // 假设master分支, commit 为 a b f g h

        git pull --rebase origin master

        // 当前分支dev commit 变为 a b c d e f g h

  • git rebase master

         // 假设当前分支dev, commit 为 a b c d e

        // 假设master分支, commit 为 a b f g h

        git rebase origin/master

        // 当前分支dev commit 变为 a b f g h c d e

stash储存代码

  • 场景:当你的功能还没开发完不能commit但是现在需要rebase下master,缓存区的代码该咋办?当你写了几行代码,但是现在需要切到其他分支去改bug,缓存区的代码该咋办? 这时候就到了stash的用武之地了

  • git stash 贮藏代码

  • git stash pop 恢复到工作区和缓存区,会移除stashid

  • git stash list 查看当前贮藏区

  • git stash apply stashname 恢复指定贮藏代码到工作区和缓存区,会保留stashid

  • git stash save 'msg' 带备注贮藏

  • git stash show -p 显示最新的贮藏文件具体改动

  • git stash show -p stashname 显示指定的贮藏文件具体改动

reset回退

  • git log 查看提交日志

  • git reset 将所有暂存区回退到工作区

  • git checkout . 丢弃工作区所有的更改

  • git reset --hard [commit hash] 将从commithash(不包括此hash)之后的丢弃

  • git reset --hard 将暂存区、工作区所有内容丢弃

  • git reset --soft [commit hash] 将从commithash(不包括此hash)之后的提交回退到暂存区

  • git reset --soft HEAD~4 回退最近4次提交到暂存区

cherry-pick 复制提交

  • 场景:当你在merge或者rebase的时候发现冲突太多了,想哭的时候,可以用原分支check目标分支处理,然后再cherry-pick当前分支的每个提交,这样冲突就会少很多。或者另一分支上有些代码还没有merge到master,但是你当前分支又非要用的时候,就可以cherry-pick过来一份。

  • git cherry-pick [commit hash] 将其他分支上已提交的commit在当前分支再提交一次,产生新的commithash

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

有马大树

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

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

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

打赏作者

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

抵扣说明:

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

余额充值