Git常用总结

151 阅读2分钟

git代码提交记录

  1. 第一步:git status ,查看当前状态,红色代表修改的文件
  2. 第二步:git add . / git add xxx ,提交文件到本地git缓存区
  3. 第三步:git commit -m "提交代码备注",推送修改到本地git库中
  4. 第四步:git pull <远程主机名> <远程分支名>,取回远程主机某个分支的更新,再与本地的指定分支合并
  5. 第五步:git push <远程主机名> <远程分支名>,把当前提交到git本地仓库的代码推送到远程主机的某个远程分之上

git报错:error: failed to push some refs to ...

在push代码的时候,出现如下错误:

Error: failed to push some refs to ... 

场景1:当前本地要提交的代码是最新的,远程分支有的代码 - 本地代码也有,并且本地有新增的(意思就是本地代码为此次最新的提交那就可以直接把远程的此分支删掉,将本地推上去)

先使用(删除远程分支):git push --delete origin um/fix-bug
然后再(提交当前分支并关联远程库):git push -u origin um/fix-bug

场景2【此种比较常见】:如果你发现线上的代码是最新的,而本地的代码没有同步线上最新的代码导致上面的报错不给提交,此时本地代码中又写有其他部分的新代码(大概的意思就是,线上有部分新的代码本地没有,本地刚新增的代码线上也没有,因为也没有提交),这种情况就用下面的方法:

先执行(拉取远程分支代码插入当前提交前):git pull --rebase origin um/fix-bug
再执行(推上去):git push origin um/fix-bug

场景3:如果本地的代码的更改不想要了(确定本地的不要了哦~),想直接用线上的代码,一切重新来,让线上的代码直接覆盖本地的代码(直接用线上的,这样后面在此基础上改,再去 git push 是会成功的)

先执行(直接强制将线上覆盖本地代码):git pull --force origin um/fix-bug:um/fix-bug
...写BUG...  ->  git add .  -> git commit -m xxx
再提交(把最后的更改推上去): git push origin um/fix-bug

报错 git:You have not concluded your merge (MERGE_HEAD exists)

导致报错:"error: You have not concluded your merge (MERGE_HEAD exists)."的原因可能是在以前pull下来的代码自动合并失败。

解决方案一:保留本地的更改,中止合并->重新合并->重新拉取

$:git merge --abort
$:git reset --merge
$:git pull

git pull之后然后重新解决冲突,再push,(记得需要稍微跟自己push的要有一点区别,要不然又会造成这样的情况)

解决方案二:舍弃本地代码,远端版本覆盖本地版本(慎重)

$:git fetch --all
$:git reset --hard origin/master
$:git fetch