情况一,
当本地的项目已经执行了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
进行推送远程分支
这样写的优点是会在远程基础上提交历史,会更清晰,保持提交历史的线性。
而不是会出现
情况二,
当远程仓库已有修改,但有一些本地修改,但这些修改还没有提交。如果你直接拉取远程更改,可能会导致冲突。
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,但是直接切换到其他分支并不能直接切换,必须提交到本地之后才可以进行切换,而你也并不想多出一条提交记录
黄色的切换为红色的
会告诉你本地有修改
步骤
1.查看你暂存了那些
git stash list
2.取出暂存的修改
git stash apply stash@{0} 如果stash多次 可以用这个选择恢复那一条记录
或者直接使用
git stash apply(恢复后不会删除stash记录)
git stash pop (恢复后删除stash记录)
情况四,
当你最新的提交记录有bug,此时你想回退版本重新提交一下。
步骤
git reset --hard 788fd87af602bf62ec3a495a3a1a4b88efdd216f提交id