git常用场景

78 阅读2分钟

git常用场景

1.新建分支并推送至远程

  1. 使用git checkout -b [新建分支名]切换一个分支,如果分支不存在就新建一个分支并切换至此分支
  2. 使用git push [远程主机名] [本地分支名]:[远程分支名]将本地分支推送至远程分支
  3. 使用git branch --set-upstream-to=[远程主机名]/[远程分支名] [本地分支名]来关联本地分支和远程分支

2.代码合并

git merge

main分支的代码如下图 dev分支的代码如下图 使用git merge 将dev分支的新提交添加到main分支 合并后的main分支如下图,并不会导致代码覆盖等问题 如果两个分支的提交中没有冲突的代码,就可以直接push,如果存在冲突,就需要先解决冲突,然后再提交代码

3.代码撤回

git reset(不推荐)

上传了三条记录,现在使用git reset撤回一条 使用git reset --hard [commit id]撤回代码至第二次提交,此时本地的代码已经撤回到第二次提交。

然后将本地的版本推送至云端,因为版本落后云端,所以正常的推送会报错,提示无法推送,所以需要在git push后面加上-f的后缀,表示强制推送,就能推送成功了。 此时,git的提交记录就变成了如下图 第三次提交的记录直接被删除了,达成我们的撤回需求。

但是此做法的缺点就是,会删除已有的commit记录,所以并不推荐

git revent

在上面操作的基础上,重新上传了一条,现在使用git revent撤回记录

使用git revert [commit id]可以撤回指定的那次提交,然后直接使用git push就能提交成功了。

要注意的是,git revert命令使用后,会进入一个vim编辑的模式,进行书写commit的内容

提交成功后可以看到,远程的文件已经没有第三次提交的内容了,说明我们撤回的需求达成了

再看看一下提交记录,如下图

revert并不会像reset那样,直接删除了commit记录,而是新建了一条关于撤回内容的提交记录,这样就可以看到具体上传错的和撤回的记录了,撤回代码推荐使用这种方式,避免删除了错误commit记录,导致代码彻底丢失