jjzjj

【人见人爱报错系列】Git常见问题解决大全

三省同学 2023-11-18 原文

前言

在使用的github\gitlab各种hub的过程中,会遇到各种各样的小问题,这些会给程序员们带来五光十色的烦恼,本文总结使用git的各种问题并持续更新。

一、Git用户名邮箱设置

使用git过程中,会切换不同项目但是发现提交人都是一样的,怎么针对不同项目设置不同的提交人和邮箱呢?

//查看用户名
git config user.name
git config user.email

全局设置

//修改用户名
git config --global user.name "Your_username"
//修改邮箱
git config --global user.email "Your_email"

项目设置

GIT针对不同项目设置不同提交人及邮箱

1、进入项目根目录。

2、进入 .git 文件夹

3、编辑 config 文件,在最后添加以下内容:

    name = 提交人名称
    email = 邮箱 ```

二、删除历史提交记录

以master分支为例,若开启保护分支需关闭。复制master,删除原有分支,用新的分支覆盖旧分支。从而完成分支替换,删除历史记录。

注:谨慎操作,按以上操作后无法回滚。

1、本地仓库checkout检出新分支,参数orphan:没有commit记录的分支
git checkout --orphan bakmaster

2、添加分支所有文件

git add -A

3、将添加的文件提交到本地仓库

git commit -am "commit description"

4、删除之前的主分支

git branch -D master

5、重命名检出的新分支为master,使他成为主分支

git branch -m master

6、强制提交覆盖掉远程仓库的分支

git push -f origin master

7、查看日志

git log

三、错误push后,回退提交

1、回滚

git reset --hard commit -id #commit -id是git log中得到的提交id。

2、强制推送

git push origin HEAD --force

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

四、.gitignore忽略文件修改不起作用

因为ignore文件中新增的忽略文件在之前的版本中已经提交至远程库。解决办法就是要删除忽略文件在本地的git缓存,再提交至远程库,如下

# 删除本地缓存
git rm -r --cached xxx.file
# 忽略
git commit -m ``"ignore"
# 提交远程
git push

五、Git 使用tag相关命令操作

tag简介

tag主要用于发布版本的管理,一个版本发布之后,我们可以为git打上 v.1.0.1 v.1.0.2 …这样的标签。

tag与branch区别:

tag标记 指向某个commit的指针。branch分支 对应一系列commit,通过HEAD 指针移动。

tag使用场景:

如果已经发布了 v1.0 v2.0 v3.0 三个版本。需要在 v2.0 的基础上功能修改或新增等操作,作为 v4.0发布。就可以使用tag检出 v2.0 的代码作为一个 branch 进行开发。

tag使用

创建本地
tag git tag xxx
创建时增加附注
git tag -a v1.0 -m "release 1.0 version"

推送远程

git push origin xxx

查看本地某个tag的详细信息

git show xxx

查看本地所有tag

git tag 或者 git tag -l

查看远程所有tag

git ls-remote --tags origin

删除tag名xxx

git tag -d xxx

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

git push origin :refs/tags/xxx

检出tag

git checkout -b

六、远程仓库地址改变操作

git remote set-url origin http://xxx.git

七、Git pull\push\merge踩坑报错

命令简介

git merge

用于将两个或两个以上的开发历史加入(合并)一起。

git fetch

从远程获取最新版本到本地,不会merge(合并)。

# 语法:git fetch <远程主机名>。

git fetch orgin master

git pull

从远程获取最新版本并merge(合并)到本地。

# 语法:git pull <远程主机名><远程分支名>:<本地分支名>。
git pull origin master:master

git reset

将当前的分支重新设置到指定的commit id或者HEAD。

语法:git reset [- -hard|soft|mixed|merge|keep][<commit id>或HEAD]

HEAD是默认路径。hard、soft、mixed、merge、keep是设置的模式。通常回滚代码时,使用- -hard,表示自commit id以来,工作目录中的任何改变都被丢弃,并把HEAD指向commit id。

连接报错系列

fatal: unable to access ‘https://github.com/xxx.git/’: Failed to connect to github.com port 443: Timed out
git push或者pull的时候报以上错误解决方式:

git config --global http.sslVerify "false"

fatal: unable to access ‘https://github.com/xxx.git/’: OpenSSL SSL_connect: Connection was reset in connection to github.com:443解决:

git config --global http.sslBackend "openssl"
git config --global http.sslCAInfo "C:\Program Files\Git\mingw64\ssl\cert.pem" #git安装的路径

OpenSSL SSL_read: Connection was aborted, errno 10053 Failed to connect to github.com port 443 after 21096 ms: Timed out解决:

git config --global http.postBuffer 524288000
git config --global http.sslVerify "false"

冲突报错系列

Git Pull Failed
error: You have not concluded your merge (MERGE_HEAD exists).
fatal: Exiting because of unfinished merge.

Git Merge Failed
fatal: You have not concluded your merge (MERGE_HEAD exists).

Git Pull Failed
Your local changes would be overwritten by merge.
Commit, stash or revert them to proceed. View them

先备份代码在进行如下操作:
方法一:舍弃本地代码

远程版本覆盖本地版本

git fetch --all

git reset --hard origin/master

git pull

方法二:保留本地代码

中止合并–>重新合并–>重新拉取

git merge --abort

git reset --merge

git pull

同一分支历史提交记录不同报错

git pull 时报错:
fatal refusing to merge unrelated histories

# 强行合并
git pull origin master --allow-unrelated-histories 
# 提交远程
git push

push未设置关联远程分支报错

使用git push 报如下错误:
fatal: The current branch master has no upstream branch
解决
方式一:

# 根据需要替换分支名
git push --set-upstream origin master

方式二:

# 根据需要替换分支名 远程分支master不存在会创建
git push -u origin master

git路径含空格报错

error: cannot spawn git: No such file or directory fatal: unable to fork
Git Bash能正常使用git命令,idea使用命令报错。
解决:

调整路径去掉空格
C:\Program Files\Git\bin\git.exe
如修改成:
C:\idea\Git\bin\git.exe

八、git上传jar包

打开项目下.gitgnore文件,删除*.jar即可上传。其它格式文件同理

有关【人见人爱报错系列】Git常见问题解决大全的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  3. ruby - 通过 rvm 升级 ruby​​gems 的问题 - 2

    尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub

  4. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  5. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  6. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

  7. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

  8. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  9. ruby-on-rails - 简单的 Ruby on Rails 问题——如何将评论附加到用户和文章? - 2

    我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。

  10. 【高数】用拉格朗日中值定理解决极限问题 - 2

    首先回顾一下拉格朗日定理的内容:函数f(x)是在闭区间[a,b]上连续、开区间(a,b)上可导的函数,那么至少存在一个,使得:通过这个表达式我们可以知道,f(x)是函数的主体,a和b可以看作是主体函数f(x)中所取的两个值。那么可以有,  也就意味着我们可以用来替换 这种替换可以用在求某些多项式差的极限中。方法: 外层函数f(x)是一致的,并且h(x)和g(x)是等价无穷小。此时,利用拉格朗日定理,将原式替换为 ,再进行求解,往往会省去复合函数求极限的很多麻烦。使用要注意:1.要先找到主体函数f(x),即外层函数必须相同。2.f(x)找到后,复合部分是等价无穷小。3.要满足作差的形式。如果是加

随机推荐