Git 使用过程中遇到的常见操作(一)

前言

在日常代码开发过程我们常常会遇到 git 使用的各种提,今天针对两个遇到的问题进行整理记录。

1、git cmommit 后和撤销

2、git pull遇到错误:error: Your local changes to the following files would be overwritten by merge 怎么处理

1、Git命令 commit后,如何撤销 commit

修改了本地的代码,然后使用命令:

git add file
git commit -m '原因'

执行commit后,还没执行push时,想要撤销这次的commit,该怎么办?

在Git中,撤销commit有几种方法,可以根据具体的需求和情况来选择合适的方法。以下是两种常用的撤销commit的方法:

方法一:使用git revert命令

1、使用git log命令查看提交历史,找到需要撤销的commit的哈希值。

2、使用git revert命令,加上需要撤销的commit的哈希值,执行撤销操作。

例如:git revert <commit-hash>。这会在当前分支上创建一个新的commit,该commit的内容是撤销之前commit的更改。

3、使用git push命令将撤销的commit推送到远程仓库。

需要注意的是,git revert命令是创建一个新的commit来撤销之前的更改,而不是直接删除之前的commit。这样可以保持提交历史的完整性。

方法二:使用git reset命令

1、使用git log命令查看提交历史,找到需要撤销的commit的哈希值。

2、使用git reset命令,加上需要撤销的commit的哈希值,执行撤销操作。例如:git reset <commit-hash>。这会将当前分支的HEAD指针移动到指定的commit上,撤销该commit之后的所有更改。

git reset命令有三种模式:--soft--mixed--hard

--soft模式会保留更改的内容,但撤销commit;

--mixed模式会保留更改的内容,并且撤销暂存区的更改;

--hard模式会撤销commit和工作区的更改。

默认情况下,git reset命令使用--mixed模式。如果希望保留更改但不撤销暂存区的更改,可以使用--soft模式;如果希望完全撤销commit和工作区的更改,可以使用--hard模式。

3、如果需要,使用git push命令将撤销的commit推送到远程仓库。

需要注意的是,git reset命令会改变提交历史,所以在使用时要谨慎。特别是如果已经将commit推送到远程仓库,并且其他人也基于该commit进行了工作,那么使用git reset命令可能会导致问题。

总结起来,如果希望保留提交历史并使用新的commit来撤销之前的更改,可以使用git revert命令;如果希望直接撤销commit并可能改变提交历史,可以使用git reset命令。根据具体的需求和情况选择合适的方法。

另外一点,如果commit注释写错了,先要改一下注释,有其他方法也能实现,如:

git commit --amend 

这时候会进入vim编辑器,修改完成你要的注释后保存即可。

2、git pull遇到错误:error: Your local changes to the following files would be overwritten by merge

遇到情况,如何保留本地的修改同时又把远程的合并过来呢?取决于你是否想要保存本地修改。

保留修改:

git stash  
git pull origin master  
git stash pop

git stash 的时候会把你本地快照,然后git pull 就不会收到阻止,pull完之后你的代码并没有保留你的修改。然后执行git stash pop 在看会发现发生冲突的本地修改还在,这时候该commit push啥的可以了。

不保留修改:

不想保留本地的修改。直接将本地的状态恢复到上一个 commitid 。然后用远程的代码直接覆盖本地就好了

git reset --hard 
git pull origin develop

记录 ok

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

卢卡上学

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

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

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

打赏作者

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

抵扣说明:

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

余额充值