Welcome Guest ( Log In | Register )

欢迎访问本站。游客仅能浏览首页新闻、版块主题、维基条目与资源信息,需登录后方可获得内容发布、话题讨论、维基编辑与资源下载等权限。若无账号请先完成注册流程。
 
Reply to this topicStart new topic
> Git 使用笔记:三个小问题
Bozar
2015-04-25, 22:05
Post #1


GEEKs will Eventually Evolve into Kryptonians. | All my jokes are cries for help.
Group Icon
 1267
   73

Group: Avatar
Posts: 1109
Joined: 2008-05-18
Member No.: 21346




本文记录了我使用 Git 初期遇到的三个小问题。

## git-credential-cache--daemon

* 操作系统:openSUSE 13.2。
* 操作步骤:输入命令 `git push`。

出现错误提示:

error: cannot run git-credential-cache--daemon: No such file or directory
fatal: unable to start cache daemon: No such file or directory

我根据 [Stack Overflow 用户的回答](http://stackoverflow.com/questions/18106214/git-credential-helper-doesnt-work)安装了 `git-daemon`,问题解决。

## Authentication Failed

* 操作系统:Windows 7,openSUSE 13.2。
* 操作步骤:先修改 GitHub 密码,再输入命令 `git push`。

出现错误提示:

fatal: Authentication Failed

我在 Windows 里使用 msysgit,根据 [GitHub 帮助文档](https://help.github.com/articles/caching-your-github-password-in-git/#platform-windows) 输入命令即可解决问题。但是我在 openSUSE 里照着 GitHub 的帮助文档输入命令,依然遇到同样的错误,网上搜了一圈也没找到答案。最后只好查 manual。

我先用这个命令筛选出包含 `credential` 关键词的 Git manual。

git help -a | grep credential

然后根据筛选结果查阅这篇 manual:

man git-credential

原来可以用以下命令设置用户名和密码:

git credential approve

输入的文本格式如下:

protocol=https
host=github.com
path=Bozar/
username=Bozar
password={密码}
{输入空行作为结束}

## CRLF

* 操作系统:Windows 7。
* 客户端软件:GitHub client,mysysgit。
* 操作步骤:输入命令 `git push`。

我发现 GitHub client 会把单独一个换行符 `LF` 被替换成 `CRLF`。根据这篇 [GitHub 帮助文档](https://help.github.com/articles/dealing-with-line-endings/#platform-windows) ,用户可以设定使用哪种换行符。不过后来我改用 mysysgit,这款软件安装时提供了与换行符有关的选项,我选择始终采用 `LF` 作为换行符。



This post has been edited by Bozar: 2015-04-25, 22:06
TOP
TheFool
2017-01-25, 11:43
Post #2


Jack of all trades, master of none.
Group Icon
 290
   14

Group: Builder
Posts: 183
Joined: 2015-12-19
Member No.: 65240


StackOverflow没解决的问题居然在TROW解决了......有些神奇的感觉。


同样是 **Authentication Failed**,平台为Git bash for Windows。之前Git自动缓存了我的github账号A(协议为https),在切换到账号B(同样通过https授权)之后依然在用之前缓存的账号密码,导致push失败。

首先清空缓存

```
git credential reject
```

输入特征:

```
protocol=https
host=github.com
```

换行两次结束输入。

之后再次尝试push:

```
git push origin master
```

重新输入用户名和密码,push成功。

其实可以参考Bozar老爷的方法通过`git credential approve`添加新的钥匙串,但是我嫌麻烦清空了所有github相关缓存......


This post has been edited by TheFool: 2017-01-25, 11:47
TOP
Fast ReplyReply to this topicStart new topic
 


Time is now: 2020-02-23, 08:33