git提交遇到的一些情况及处理

情况一,

当本地的项目已经执行了git commit 操作,刚要推送远程仓库发现远程仓库已经有了最新的代码

无冲突的情况
step:1
git pull --rebase origin 远程分支名
step :2
直接推送到远程即可


有冲突的情况
step:1
git pull --rebase origin 远程分支名
step :2
git status 查看冲突的文件有那些,然后解决冲突
step:3
git add . 将解决好的冲突进行add.
step:4
git rebase --continue
step:5
进行推送远程分支

这样写的优点是会在远程基础上提交历史会更清晰,保持提交历史的线性

而不是会出现


image.png

情况二,

当远程仓库已有修改,但有一些本地修改,但这些修改还没有提交。如果你直接拉取远程更改,可能会导致冲突。

step:1
git stash 将修改的代码放在一个临时空间
step:2
git pull origin 远程分支名 拉取远程
step:3
git stash pop
再将修改的代码从临时空间拿回来,将你工作目录中的所有未提交的更改(包括暂存区和工作区的更改)保存到一个栈中,并恢复工作目录到上次提交的状态

情况三,

当你已经提交了一次commit,然后发现上一次提交的有错误,所以你想更改再次提交但是完成的功能是一样的你并不想生成重复的描述记录那么就

step1
git add . 提交所有修改
step2
git commit --amend --no-edit 合并更改到上一提交

情况四,

当你分支上有修改但是你只是想单纯切换另一个分支修改一些bug,但是直接切换到其他分支并不能直接切换,必须提交到本地之后才可以进行切换,而你也并不想多出一条提交记录

黄色的切换为红色的


image.png

会告诉你本地有修改


image.png

步骤
git stash 暂存当前的修改也可以使用git stash push -m "描述性消息"
1.查看你暂存了那些
git stash list
2.取出暂存的修改
git stash apply stash@{0} 如果stash多次 可以用这个选择恢复那一条记录

或者直接使用
git stash apply(恢复后不会删除stash记录)

git stash pop (恢复后删除stash记录)

删除单个储藏
git stash drop stash@{1}
删除所有储藏
git stash clear

情况四,

当你最新的提交记录有bug,此时你想回退版本重新提交一下。

步骤
git reset --hard 788fd87af602bf62ec3a495a3a1a4b88efdd216f提交id

情况五,

当你本地提交之后,然后发现提交错了,此时你想撤回之前的提交

步骤
git reset --mixed HEAD~1

撤回最后一次提交并取消暂存的更改(保留文件更改)

情况六

将本地的water分支合并到远程的feature/water分支上

步骤
1 ,首先先拉取远程的feature/water分支在本地上,确保本地是有要合并到的这个分支
git checkout -b feature/water origin/feature/water

2.合并分支
git merge water

处理冲突(如果有)并提交
git add .
git commit -m "合并完成"

3 git push origin feature/water

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容