美文网首页
GIT常见问题解决办法汇总

GIT常见问题解决办法汇总

作者: 励志前端小黑哥 | 来源:发表于2022-06-28 16:44 被阅读0次

    此篇文章记录本人在使用git命令时遇到的问题,及其处理办法。

    1、回退版本至某次提交

    首先,需要知道这次提交的commit id,可以使用git log命令,根据自己的提交日志及时间查找id

    然后,使用git reset命令将本地分支强制重置为id时的状态,如下

    git reset --hard commit-id

    注:commit-id是git log中找到的id。

    最后,如果需要将此回退推送到远程仓库,可以使用强制推送,如下

    git push origin HEAD --force

    需要注意的是,这个提交会将远程仓库强制覆盖,请谨慎使用。

    2、.gitignore文件修改不起作用

    产生这个问题的原因,是因为ignore文件中新增的忽略文件在之前的版本中已经提交至远程库。

    解决办法就是要删除忽略文件在本地的git缓存,再提交至远程库,如下

    git rm -r --cached xxx.file

    git commit -m ``"ignore"

    git push

    3、如何删除中间的某次提交

    某次提交不小心push到远程仓库了,不用担心,如下即可

    git rebase -i pre_commit_id(前一次提交id)

    # 接下来将需要删除的提交 pick修改为 drop

    # 然后Esc后 wq保存

    # 最后强制推送至远程

    git push origin HEAD --force

    注意:这种方式会刷新该次提交之后的提交记录,会为他们生成一个新的commit_id,故:慎用

    4、gitlab push时出现GitLab: You are not allowed to force push code to a protected branch on this project

    登录至gitlab取消保护即可

    image.png

    5、git 创建tag、删除tag相关的命令

    ## 创建本地tag,tag名为xxx

    git tag xxx

    ## 将本地tag名xxx推送至远端

    git push origin xxx

    ## 删除tag名xxx

    git tag -d xxx

    ## 将删除的tag名xxx推送至远端

    git push origin :refs/tags/xxx

    6、github如何创建一个Release版本

    直接按照github中的创建按钮操作就行,如果没有tag,它会自动生成一个对应的tag

    image.png

    7、git子模块更新问题

    git的子模块只映射到某一次提交记录,若一个项目存在子模块,只需要运行下面两条命令即可

    git submodule init

    git submodule update

    这种办法只会更新至当前项目映射的提交记录,并不会更新子模块最新的提交。

    关于这个问题,你切换至子模块看看子模块的分支便可知道原因

    F:\father\child>git branch

    * (HEAD detached at c6ca594)

    local

    master

    当前子模块并不在任何分支,而是在一个分离的HEAD分支。

    这个时候,如果你需要合并最新的代码至当前主模块,只需要合并需要的分支即可

    # 将local分支的最新记录合并至当前分支

    F:\father\child>git merge local

    # 回到主模块,提交当前的合并记录,并推送至远程分支

    F:\father>git add child

    F:\father>git commit -m ``"合并local最新提交"

    F:\father>git push

    这就大功告成了。

    这里有一点需要注意,我们偶尔需要在子模块进行开发,如果在子模块切换了分支,就找不到分离HEAD分支了。

    这个时候回到主模块,强制更新一下即可

    F:\father>git submodule update -f

    根据.gitsubmodule文件同步远端代码

    git submodule update --remote

    8、远程仓库迁移,修改本地的远程仓库地址

    git remote set-url origin http:``//git.sxw.cn/web-base/boot-clean.git

    相关文章

      网友评论

          本文标题:GIT常见问题解决办法汇总

          本文链接:https://www.haomeiwen.com/subject/hetzvrtx.html