Git常用命令及Git取消(master|MERGING)状态、删除最近一次远程

目录

一、Git常用命令

二、Git基本操作流程

1、搭建项目

2、开发

3、版本回退

三、取消MERGING状态


一、Git常用命令

$ git clone <repo.git> # 将远程中央仓库代码下载到本地
$ git pull # 将远程中央仓库代码最新版本拉取到本地(需要本地已有仓库)
$ git status # 查看当前版本库状态信息
$ git add -A # 将所有未被跟踪处理的资源添加到暂存区
$ git commit -m 'message' # 提交本地版本库
$ git init # 初始化本地空白仓库
$ git branch # 查看分支
$ git checkout <branch-name> # 切换分支
$ git log # 查看版本日志
$ git push # 将本地版本库推送到远程中面仓库
$ git remote -v # 查看远程仓库地址

二、Git基本操作流程

1、搭建项目

  • 先将项目的基本结构搭建好
  • 初始化本地版本库,并提交初始版本(创建项目结构的版本)
  • 创建空白的远程中央仓库,将本地版本库与远程中央仓库关联
$ git remote add <name> <repo.git>
# 如:
$ git remote add origin https://gitee.com/mobiletrain/XXX.git
  • 将本地版本库推送到远程中央仓库中
$ git push <name> <local-branch-name>:<server-branch-name>
# 如
$ git push origin master:master
$ git push origin master # 如果本地分支与远程分支名称一致,则简写
  • 基于上传的 master 分支,新建一个 dev 开发分支,将 dev 开发分支设置为默认分支
  • 将远程中央仓库设置为开源
  • 将成员添加到仓库的成员中

中央仓库中 --> 管理标签 --> 左侧仓库成员管理 --> 开发者 --> 添加成员 --> 邀请用户

2、开发

  • 将远程中央仓库的代码下载到本地

$ git clone <repo.git>
  • 基于默认的 dev 分支创建并切换到自己 的开发分支:
$ git checkout -b <new-branch>
# 如:
$ git checkout -b zhangsan
  • 在工作空间中实现编码,完成业务逻辑处理
  • 在完成一个功能并通过测试后,可提交本地版本库
$ git add -A 或者 git add .
$ git commit -m 'feat: message'
  • 将本地版本库推送到远程中央仓库自己的分支中:
$ git push origin zhangsan

3、版本回退

# 查看当前历史区版本信息
$ git log

# 回退到第一次提交的版本
$ git reset --hard ce0c17f7a703c6847552c7aaab6becea6f0197f2
# 回退到第二次提交的版本
$ git reset --hard abb2c4f12566440e04bc166c3285f855a37a3bb2

三、取消MERGING状态

出现MERGING状态大多数因为在push代码之前未pull代码,或pull代码时与本地代码发生冲突

总结就是本地代码未更新或更新有冲突

最好的解决方案就是把自己的提交撤回了,先pull再push

建议:

  1. 使用webStorm编辑器会更方便的解决git冲突问题和提交
  2. 新手每次在需要合并代码之前切记备份一下本地的代码,用最蠢的cv整个文件夹也可以,不然极其容易出现代码回滚丢失
  3. pull之前最好先commit一下代码,这样回退版本还能回退回去
  4. 合并代码的时候最好在本地运行一下,看合并的代码是否会影响自己的功能,是否会影响别人的功能,影响自己还好,影响别人的可能会受到一顿“毒打
$ git reset --hard HEAD^  #撤回提交 
$ git pull # 拉远程代码
#---------期间会存在合并冲突,只需解决冲突即可
#---------解决冲突完后再add-commit-push

四、删除最近一次或多次已经push到远程的推送提交

🚨 前提提醒(重要)

🔥 删除远程提交会影响所有拉取该仓库的同事,务必确认:

  • 仓库没有其他人在使用或你已经通知了大家。

  • 你有足够权限去强制推送(force push)。

  • 通常只在开发分支(如 feature/*dev)中使用,禁止在 main/master 使用,除非紧急。

✅ 场景 1:删除最近的 1 次或几次提交

🧹 方法:使用 git reset + push -f

# 回退到你想保留的那一条提交,比如回退最近的 2 次
git reset --hard HEAD~2

# 强制推送到远程
git push origin 分支名 --force

📌 举例:

git reset --hard HEAD~1   # 删除最近 1 次提交
git push origin dev --force

✅ 场景 2:删除指定提交(中间某一条)

这种要用 rebase -i 操作比较灵活。

git rebase -i HEAD~N  # N 是你要回溯的提交数,比如 5
  • 会弹出一个交互界面,把你想删的那条改成 dropd

  • 保存退出后,rebase 会重写历史

  • 然后强制 push:

git push origin 分支名 --force

<think>好的,用户的问题是如何退出Git的合并状态。我需要先回忆一下Git中合并冲突时的处理步骤。 首先,当Git处于合并状态时,通常是因为有冲突需要解决。用户可能执行了git merge后遇到了冲突,现在想退出这个状态。这时候有两种常见情况:解决完冲突后继续合并,或者放弃合并回到之前的状态。 我记得可以使用git merge --abort来终止合并过程,并且恢复到合并前的状态。这个命令会取消合并带来的所有更改,确保分支干净。需要确认用户当前的Git版本是否支持这个命令,不过现在大多数版本应该都支持。 另外,如果用户已经解决了一部分冲突,但还没完成,可能想退出。这时候同样可以用--abort选项。如果用户手动删除了冲突标记但还没提交,可能需要先重置状态,再使用abort命令。 还有可能用户误操作进入了合并状态,这时候同样适用abort命令。需要提醒用户,执行这个命令后,所有合并的修改都会被丢弃,所以在操作前最好先保存需要的更改。 另外,查看Git状态也很重要,可以通过git status来确认当前是否处于合并中,以及有哪些文件有冲突。如果用户只是想查看状态,也可以指导他们使用这个命令。 需要确保用户知道在abort之后,工作区会回到合并前的状态,这样他们可以重新开始或者进行其他操作。同时,如果用户已经解决了部分冲突,但想放弃,使用abort是安全的,不会保留那些修改。 最后,可能还需要检查是否有其他方法,比如使用git reset --hard HEAD,但这种方法可能更激进,可能会丢失未提交的更改。所以推荐首选git merge --abort,因为它更安全且专门用于此情况。</think>要退出Git的合并(merging状态,可以通过以下步骤操作: --- ### **1. 终止合并并恢复原状** 如果合并过程中遇到冲突或需要放弃合并,使用命令: ```bash $ git merge --abort ``` 该命令会取消所有合并操作,将代码库恢复到合并前的状态[^1]。这是最安全且推荐的方式。 --- ### **2. 强制退出(不保留合并痕迹)** 如果已手动修改了冲突文件但未提交,可先重置仓库状态再终止合并: ```bash $ git reset --hard HEAD # 丢弃所有未提交的修改 $ git merge --abort ``` --- ### **3. 确认当前状态** 在操作前,建议先用以下命令查看合并状态: ```bash $ git status ``` 如果输出包含`You have unmerged paths`,说明正处于合并状态[^2]。 --- ### **注意事项** - 执行`git merge --abort`后,**所有合并相关的修改会被丢弃**,请确保已备份必要内容。 - 如果合并已提交,需通过`git reset --hard HEAD~1`回退提交。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值