关于sourceTree从URL克隆遇到的问题

关于sourceTree从URL克隆遇到的问题,第1张

总结一下在新工作中遇到的问题,都是些小问题,希望能对没有遇到过的小伙伴有所帮助吧。如果有什么不对的地方或者有什么问题,欢迎在下方评论,谢谢!!!

在从URL克隆中存在两种方式,一种是SSH,一种是HTTPS。

采用HTTPS的方式总是出现无限输入密码的问题,希望大牛在下方评论下解决方案。

SSH keys

SSH key 可以让你在你的电脑和Code服务器之间建立安全的加密连接。 先执行以下语句来判断是否已经存在本地公钥:

cat ~/.ssh/id_rsa.pub

如果你看到一长串以 ssh-rsa或 ssh-dsa开头的字符串, 你可以跳过 ssh-keygen的步骤。

提示: 最好的情况是一个密码对应一个ssh key,但是那不是必须的。你完全可以跳过创建密码这个步骤。请记住设置的密码并不能被修改或获取。

你可以按如下命令来生成ssh key:

ssh-keygen -t rsa -C"xxxxxx@xxxx.com"

这个指令会要求你提供一个位置和文件名去存放键值对和密码,你可以点击Enter键去使用默认值。

用以下命令获取你生成的公钥:

cat ~/.ssh/id_rsa.pub

输入密码 此密码为生成密钥的时候设置的密码 一般不输入 敲两下回车(如果输入了密码后面克隆的时候就要你输入这个密码)

复制这个公钥放到你的个人设置中的SSH/My SSH Keys下,请完整拷贝从ssh-开始直到你的用户名和主机名为止的内容。

如果打算拷贝你的公钥到你的粘贴板下,请参考你的 *** 作系统使用以下的命令:

Windows:

clip <~/.ssh/id_rsa.pub

Mac:

pbcopy <~/.ssh/id_rsa.pub

GNU/Linux (requires xclip):

xclip -sel clip <~/.ssh/id_rsa.pub

Applications

Eclipse

如何在Eclipse中添加ssh key:  https://wiki.eclipse.org/EGit/User_Guide#Eclipse_SSH_Configuration

Tip: Non-default OpenSSH key file names or locations

如果,不管你有什么理由,当你决定去用一个非默认的位置或文件名去存放你的ssh key。你必须配置好你的ssh客户端以找到你的ssh私钥去连接Code服务器,对于OpenSSH客户端,这个通常是在~/.ssh/config类似的位置配置的:

#

# Our company's internal GitLab server

#

Host my-git.company.com

RSAAuthentication yes

IdentityFile ~/my-ssh-key-directory/company-com-private-key-filename

以上步骤是转自阿里云

我用的是 sourceTree 2.0.2 版本,不需要再sourceTree中设置

接下来就是复制你的地址在sourceTree中从URL克隆

在这时候出现了错误 

错误总结

error: Malformed value for push.default: 当前

error: Must be one of nothing, matching, simple, upstream or current.

解决方案:终端输入git config –global push.default matching 

fatal: bad config file line 14 in /Users/tiny/.gitconfig

解决方案:git config --global user.name "your name”

                git config --global user.email "your email"

这里可以看出是一个.gitconfig隐藏文件出现了问题,可以试着在终端输入:

显示文件:defaults write com.apple.finder AppleShowAllFiles -bool true

隐藏文件:defaults write com.apple.finder AppleShowAllFiles -bool false

注:输入两个指令后需要重启电脑才能生效

显示隐藏文件后就可以打开.gitconfig文件,根据上面的解决方案查看对应改变。

之后不出意外就应该可以讲项目down到本地了。

如果有其他系列问题,欢迎评论或私信告诉我,我会在第一时间更改。

祝大家工作顺利,没有bug。

首次登陆后sourcetree会默认登陆账号和密码,换账号后如何修改请看下面:

删除C:\Users\%USERNAME%\AppData\Local\Atlassian\SourceTree 目录下的passwd文件, 能移除掉保存的密码。

同样:

删除C:\Users\%USERNAME%\AppData\Local\Atlassian\SourceTree 目录下的userhosts文件, 能移除掉保存的用户名

两个目录是固定的可以直接拷贝(这些文件夹都是隐藏的)

1、在系统的C:\Users\Administrator\AppData\Local\Atlassian\SourceTree文件夹(此位置固定)中有一个accounts.json的文件,没有的话新建一个。

2、复制以下内容到account.json文件中,保存退出从新登陆即可跳过注册。

[

  {

"$id":"1",

"$type":"SourceTree.Api.Host.Identity.Model.IdentityAccount, SourceTree.Api.Host.Identity",

"Authenticate":true,

"HostInstance": {

"$id":"2",

"$type":"SourceTree.Host.Atlassianaccount.AtlassianAccountInstance, SourceTree.Host.AtlassianAccount",

"Host": {

"$id":"3",

"$type":"SourceTree.Host.Atlassianaccount.AtlassianAccountHost, SourceTree.Host.AtlassianAccount",

"Id":"atlassian account"

      },

"BaseUrl":"https://id.atlassian.com/"

    },

"Credentials": {

"$id":"4",

"$type":"SourceTree.Model.BasicAuthCredentials, SourceTree.Api.Account",

"Username":"",

"Email":null

    },

"IsDefault":false

  }

]

记录下通过Sourcetree关联本地项目上传Github过程。

1. Github创建新repository,这里演示包含.gitignore文件的情况。

2. 打开Sourcetree,     新建-->添加已经存在的本地仓库

点击创建

点击进入项目,设置

远程仓库 -->添加

复制Github上的地址点击确定

通过拉取 *** 作发现远程分支为main, 本地分支为master

直接拉取会报错

尝试修改本地仓库为main, 再次拉取仍然报错

该错误 fatal: refusing to merge unrelated histories, 通过在终端输入命令git pull origin main --allow-unrelated-histories 解决

执行完成后,sourcetree中记录显示

点击推送到远端仓库

报如下错误

意思是自从 21 年 8 月 13 后不再支持用户名密码的方式验证了,需要创建个人访问令牌(personal access token)。

解决方法: 在github上生成令牌,步骤:Settings->Developer settings->Personal access tokens->Generate new token  的方式得到令牌

再执行命令

git remote set-url origin https://<令牌>@github.com/<用户名>/<repo>.git

再次在Sourcetree中提交, 即可成功

查看结果, 至此完成:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11898705.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存