失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Git取消add commit push的命令

Git取消add commit push的命令

时间:2023-10-31 11:51:43

相关推荐

Git取消add   commit push的命令

文章目录

1. 撤销已经add,但是没有commit的问题2. 撤销已经commit,但是没有push到远端的文件(仅撤销commit 保留add操作)3. 撤销已经push到远端的文件4. git commit --amend 修改git提交目录查看状态5. 修改分支名称 `git branch (-m | -M) `6. merge 合并分支冲突解决7. git checkout 切换分支报错 - git reset --hard FETCH_HEAD8. git 去除分支后一直带有 rebasing

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

git reset HEAD

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

撤销上一次的提交

git reset --soft HEAD^

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

git reset HEAD~数字

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

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

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

注意:

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

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

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

然后编辑修改信息

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

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

或者使用Idea自带的Amend Comment

查看状态

查看没有git add的文件

git checkout

查看当前提交状态

git status

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

步骤:

将旧分支名称oldBranch更新为新的名称newBranch

-m-M的区别:使用-M则表示强制重命名

-m:移动/重命名一个分支和相应的reflog。

-M:移动/重命名一个分支,即使新的分支名称已经存在。

git branch -m oldbranch newbranch

删除旧远程分支oldBranch

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

git push --d origin oldbranch

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

git push origin newbranch

提供销控管理工具

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命令拉取代码,冲突文件中就回出现类似下面这种情况的东西

<<<<<<< HEADprivate 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 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 文件冲突,

解决办法:

需要将冲突的文件resolvegit 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

解决方法:

,然后解决冲突提交

git status找到冲突文件,解决冲突后提交,最后git rebase --continue`

git rebase --abortgit rebase --skip放弃当前rebase操作文件

rm命令删除rm .git/rebase-apply

【备注】merge 同理

如果觉得《Git取消add commit push的命令》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。