首页 > 其他分享 >Git取消add 、 commit、push的命令

Git取消add 、 commit、push的命令

时间:2024-01-28 20:32:02浏览次数:29  
标签:git -- add Git 本地 push commit 分支


1. 撤销已经add,但是没有commit的问题

git reset HEAD

2. 撤销已经commit,但是没有push到远端的文件(仅撤销commit 保留add操作)

撤销上一次的提交

git reset --soft HEAD^

 

windows 系统使用提示 more,需要多加一个 ^(windows当中^才是换行符?)

git reset --soft HEAD^^

按照输入的数字撤销输入数字条commit记录

git reset HEAD~数字

3. 撤销已经push到远端的文件

// 切换到指定分支
git checkout 分支名
// 撤回到需要的版本
git reset --soft 需要回退到的版本号
//提交撤销动作到服务器,强制提交当前版本号
git push origin 分支名 --force

可以通过 git log 命令查看提交的版本号(选择需要回退的版本号)

Git取消add 、 commit、push的命令_git

 注意:

git reset --soft/hard 需要回退到的版本号
soft 和 hard的区别

soft:保留本地当前工作区,用于重新提交(回退到指定版本号,回退的版本号代码会保留到本地工作区,本地工作区代码还是保留最后提交的状态)
hard:不保留本地当前工作区,回退到指定版本号之后,同时本地工作区代码也回退,一定要谨慎使用
git push origin 分支名 --force
撤销后强制提交到当前分支的版本号状态,这里使用要谨慎,

4. git commit --amend 修改git提交目录

使用命令:git commit --amend既可以对上次提交的内容进行修改,也可以修改 commit 的描述信息 message

可以直接使用命令修改最近一次 commit 的message新消息

git commit --amend -m "update message"

使用命令进入 vim 编辑器

git commit --amend

Git取消add 、 commit、push的命令_版本号_02

 按 字母 E 可以进入编辑状态,如果进入的不是编辑状态,可以输入字母 i 或者字母 c,进行编辑修改

Git取消add 、 commit、push的命令_git_03

 输入字母 i 或者字母 c,进行编辑修改

Git取消add 、 commit、push的命令_工作区_04

 然后编辑修改信息

Git取消add 、 commit、push的命令_工作区_05

 修改成功之后,按 ESC 退出编辑状态,然后连续按 两下 大写字母 Z ,就可以保存下来了。

保存成功之后,输入 git log 查看修改情况

Git取消add 、 commit、push的命令_工作区_06

 或者使用Idea自带的 Amend Comment

Git取消add 、 commit、push的命令_git_07

 查看状态

查看没有git add的文件

git checkout

查看当前提交状态

git status

5. 修改分支名称 git branch (-m | -M) <oldbranch> <newbranch>

步骤:

1)将旧分支名称 oldBranch 更新为新的名称 newBranch
-m 和 -M 的区别:使用-M则表示强制重命名
-m:移动/重命名一个分支和相应的reflog。
-M:移动/重命名一个分支,即使新的分支名称已经存在。

git branch -m oldbranch newbranch

2)删除旧远程分支 oldBranch

使用 -D 相当于强制删除,类似 --delete --force

git push --d origin oldbranch

3)将修改后的本地新分支推送到远程仓库上

git push origin newbranch

 

git 分支常用命令 描述

git branch 查看本地所有分支(当前本地所在分支前面带*且为绿色,其它本地分支为白色)
git branch -r 查看远程所有分支(远程分支都为红色)
git branch -a 查看本地和远程所有分支
git branch -d <branchName> 删除本地分支,branchName 为本地分支名【使用 -D 相当于强制删除,类似 --delete --force】
git branch -d -r <branchName> 删除远程分支,branchName 为远程分支名【注意:删除分支之后,要推送到远程服务器上才有效】
git push origin <branchName> 将分支推送到远程服务器上,branchName为分支名称

提供销控管理工具

git 选项 描述
-f --force,强制操作
-r --remote,远程
-a --all,全部
-d --delete,删除
-D --delete --force,-d 和 -D 组合,表示强制删除
-m --move,移动或重命名
-M --move --force,-m 和 -M 组合,表示强制重命名,即使新的分支名称已经存在

6. merge 合并分支冲突解决

冲突发生,大概率是你和别人修改同一位置导致的(所以在提交代码之前要先同步一下代码),可以借助 git mergetool 命令查看
一般冲突解决思路:将目标分支代码合并到自己的分支上,然后处理冲突,解决冲突后再合并(即在执行 pushb之前先进行 pull)

步骤1:切换到主分支(合代码的目标分支)

git checkout master

步骤2:从目标分支拉取最新内容

git pull

步骤3:切换到自己的分支上

git checkout branchName

步骤4:将主分支代码合并到自己的分支上

git merge master

步骤5:出现冲突,就解决掉冲突(两种方式:pull 命令 或者 fetch + rebase)

如果使用 pull 命令拉取代码,冲突文件中就回出现类似下面这种情况的东西

<<<<<<< HEAD
private static final List<Integer> DEFAULT_RULE_LIST = new ArrayList<Integer>(){{add(8); add(4); add(4); add(4); add(12); }};
=======
private static final String DEFAULT_INTERVAL_STR = "-";
>>>>>>> 987bf2d1591ad351ab6e52ecdbcb2a2147204161

这就是冲突的内容,<<<<<<< HEAD 到 >>>>>>>987bf2d1591ad351ab6e52ecdbcb2a2147204161 之间的部分就是是发生冲突的部分。
中间的 ======= 是将本地与远程的冲突的部分进行分离(就是分隔符)。
即 <<<<<<< HEAD 到 >>======= 是本地分支的代码,而 ======= 到 >>>>>>>>>987bf2d1591ad351ab6e52ecdbcb2a2147204161 就是远程仓库的代码,其中这一串数字 987bf2d1591ad351ab6e52ecdbcb2a2147204161 是commit提交的版本号。
将冲突解决,然后 push 合并代码就可以了。

,然后 git push 合代码。

7. git checkout 切换分支报错 - git reset --hard FETCH_HEAD
git checkout 切换分支报错:

Can’t checkout because of unmerged files
You have to resolve all merge conflicts before checkout.

After resolving conflicts you also probably would want to commit your files to the current branch.

 

Git取消add 、 commit、push的命令_git_08

 git pull 报错:

Pulling is not possible because you have unmerged files.

hint: Fix them up in the work tree, and then use 'git add/rm <file>

hint: as appropriate to mark resolution and make a commit.

Exiting because of an unresolved conflict.

原因:

切换分支处理冲突过程中的导致本地 local 文件冲突,

解决办法:

需要将冲突的文件 resolve 掉 git add -u, git commit 之后才能继续操作

放弃本地文件的修改,git reset --hard FETCH_HEAD,回到上次成功pull之后的【谨慎使用,如果需要使用,请先保存本地 local 修改的部分内容】

FETCH_HEAD 表示上一次成功 git pull 之后形成的 commit 记录点。

git merge 会形成 MERGE-HEAD(FETCH-HEAD)

git push 会形成 HEAD 的引用,HEAD代表本地最近成功push后形成的引用。

8. git 去除分支后一直带有 rebasing
原因:

合并代码时出现错误 ,分支后面一直带着 rebasing

解决方法:

,然后解决冲突提交

  1. git status 找到冲突文件,解决冲突后提交,最后 git rebase --continue`
  2. git rebase --abort 或 git rebase --skip 放弃当前rebase操作文件
  3. rm 命令删除 rm .git/rebase-apply

【备注】merge 同理

 



标签:git,--,add,Git,本地,push,commit,分支
From: https://blog.51cto.com/u_3078781/9454139

相关文章

  • centos7安装gitLab
    yum安装安装opensshsudoyuminstall-ycurlpolicycoreutils-pythonopenssh-serverperlsudosystemctlenablesshdsudosystemctlstartsshd安装gitLab#配置镜像源curl-fsSLhttps://packages.gitlab.cn/repository/raw/scripts/setup.sh|/bin/bash#yum安......
  • 云原生架构中 GitOps 的最佳实践
    GitOps是一种基于Git的离散交付和部署的操作框架模型,它使开发者使用Git,而不是传统的连续交付管道,来进行集群管理和应用程序部署。在这篇文章中,我们将详细探讨GitOps的最佳实践。使用声明性API构建你的系统在GitOps中,你需要描述系统应有的状态而不是描述达到这个状态须......
  • github pages+hexo
    首先使用hexo要先安装noded.js和gitgit我早就安装过了,所以只要安装Node.js我使用nvs安装了Node.js(v21.0.0版本)然后使用这行命令安装Hexo:然后需要先在d盘创建hexo文件夹然后hexoinithexo:我开了vpn,所以在hexoinithexo之前我需要先配置gitconfig--globalhttp,不然git......
  • Git必知必会基础(18):PyCharm中使用Git
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/10854115.html目前主流ide是pycharm、idea等,他们可以集成git,下面简单分享下用法。数据准备远程仓库 演示:在PyCharm中使用Git(IDEA中类似)配置GitSettings——>VersionControl——>Git——>指定git命令的执行......
  • .gitignore忽略文件配置
    .gitignore概述.gitignore是一个文本文件,将他放到项目的根目录,与.git平级它可以用来指定哪些文件不被git纳入管理,gitcommit不会提交这些文件理论来说,这个文件可以放到应用程序上的任何目录,并影响所有嵌套目录,但我们通常将它放到git仓库根目录中获得最一致的结果创建手动......
  • Mac安装Git
    官网https://git-scm.com/download/macbrew安装gitbrewinstallgit配置git设置Git用户名和电子邮件:#设置你的用户名gitconfig--globaluser.name"你的用户名"#设置你的电子邮件地址gitconfig--globaluser.email"你的电子邮件地址"#检查配置gitconfig--list生成SSH......
  • 1、Git简介
    1.1、概述Git是一个开源免费的分布式版本控制系统,用于快速高效地管理各种小型或大型项目的代码。Git不仅容易学习、占用空间小,而且性能快如闪电。Git具有廉价的本地分支、方便的暂存区域和多个工作流等功能。Git超越了Subversion、CVS、Perforce和ClearCase等SCM(Sof......
  • 8086汇编push pop 易错点总结
    首先附代码assumecs:codecodesegmentdw0123h,0456hdw0,0,0start:movax,csmovss,ax;设置栈段movsp,0Ah;设置栈顶A是栈偏移movbx,0;偏移movcx,2;设置s:pushcs:[bx]addbx,2loopsmo......
  • 第一次通过 SSH key 免密连接 GitHub 的完整过程
    原文:https://ichochy.com/posts/blog/20221107.html通过密码连接GitHub总是要输入密码,麻烦,现在使用SSHkey可以轻松实现免密验证.创建SSHkey使用ssh-keygen命令打开终端输入命令ssh-keygen创建keyssh-keygen-ted25519-C"[email protected]"注意:将ichochy......
  • Git必知必会基础(12):远程冲突(conflicts)解决--merge
     演示场景虽然每次合并代码前会先把分支更新到最新,但是在你pull后到push前这段时间,可能其它小伙伴又push了,那么你的分支就不是最新的了在push的时候就会失败,比如遇到这种提示信息:Togitee.com:qzcsbj/pytest_apiautotest.git![rejected]master->master(fetchfirst)error:......