1. 授权认证
  2. 获取用户个人信息
  3. 项目协同
  4. 代码托管
  5. 持续集成
  6. 制品仓库
  7. 测试管理
  1. 项目协同
  2. 代码仓库
  3. DevOps 实践之旅
  4. 一分钟开始持续集成之旅
  5. 持续部署
  6. 制品库

Clone 代码出错怎么办

Git 是什么

Git 是一种在全球范围都广受欢迎的版本控制系统。

在开发过程中,为了跟踪代码,文档,项目等信息中的变化,版本控制变得前所未有的重要。但跟踪变化远远不能满足现代软件开发行业的协同需求,基于 Git 的 Workflow 满足了合作编程的需求,让开发从此变得更加高效和有趣。相比集中式版本控制系统如 SVN ,分布式版本控制系统 Git 拥有更强大的分支管理与合并能力,支持离线开发,并良好地保留了提交过程,让您和您的团队在开发过程中如虎添翼。

关于使用 Git 提交代码,请阅读 Git 代码托管文档 ,您也可以通过阅读 CODING 工程师参与翻译的 《Pro Git》 进一步掌握 Git 这个强大的版本控制系统。

怎样在每次 Push 时不用重复输入密码?

有两种方法:

  1. 使用 SSH 方式进行推送,您需要配置 SSH 公钥后进行操作,详情请阅读 SSH 公钥配置文档

  2. 对于 HTTPS 协议: 首先在全局配置保存你的密码, ~/.git-credentials (没有就创建)内添加

https://{username}:{passwd}@e.coding.net

然后执行配置 Git 命令存储认证命令:

$ git config --global credential.helper store

然后可以看到 ~/.gitconfig 文件发生了变化:

git config --show-origin --get credential.helper

详情请参考凭证存储。

Permission denied (publickey)

这个可能是由于你的没有目标仓库和分支的权限,导致无法更新数据。
确认您的 push 方式,如果是 SSH 方式请检查你的 SSH 公钥是否正确(如果您有多个私钥,请使用 ssh-add 命令来指定默认使用的私钥); HTTPS 方式请检查密码及用户名是否正确;确认对目标分支是否有写权限。

Couldn’t resolve host

这是由于 DNS 设置造成的,请更换为 119.29.29.29 或 223.5.5.5 后重启网络。

RPC failed

这是由于 HTTPS 推送方式的 http.postBuffer 对推送文件大小有限制造成的。
可以执行 git config http.postBuffer 524288000 设置更大的限制值。或者更换使用 SSH 方式进行推送。

Clone 出错怎么办

1 请确保安装并使用了最新版 官方 Git 客户端

2 请确保 remote url (大小写敏感)是正确的

$ git remote -v
  origin https://e.coding.net/team-name/repo-name.git (fetch)
  origin https://e.coding.net/team-name/repo-name.git (push)

# 修改
$ git remote set-url origin https://e.coding.net/team-name/right-name.git`

3 请确保自己在项目中的权限非受限;
如果使用 https 方式 clone,服务器端一直返回 403 并且客户端不提示输入密码,则有可能是 git 客户端缓存了错误的密码,请清除已保存的密码
Mac 用户请依次输入

$ git credential-osxkeychain erase
 host=e.coding.net
 protocol=https

如果以上都无法解决,请尝试使用 SSH 地址 进行 clone
如果 SSH clone 出错,请检查你是否连接到正确的地址

$ ssh -vT git@e.coding.net
 OpenSSH_6.9p1, LibreSSL 2.1.8
 debug1: Reading configuration data /Users/.ssh/config
 debug1: Reading configuration data /etc/ssh/ssh_config
 debug1: /etc/ssh/ssh_config line 21: Applying options for *
 debug1: Connecting to e.coding.net [111.202.69.69] port 22.
 debug1: Connection established.

请使用 git 作为用户名

$ ssh -T username@e.coding.net

使用自己的用户名进行链接会出错,请使用 git 作为用户名

$ ssh -T git@e.coding.net
 Hello usernanme! You've connected to Coding.net via SSH successfully!

4 确保 git 使用了密钥

$ ssh -vT git@e.coding.net
 debug1: identity file /Users/you/.ssh/id_dsa type -1
 debug1: identity file /Users/you/.ssh/id_dsa-cert type -1 
 debug1: Authentications that can continue: publickey 
 debug1: Next authentication method: publickey
 debug1: Trying private key: /Users/you/.ssh/id_dsa 
=debug1: No more authentication methods to try.
Permission denied (publickey). 

-1 表示未找到密钥,请参考帮助文档重新生成 rsa 密钥并进行配置

$ ssh -vT git@e.coding.net
 debug1: identity file /Users/you/.ssh/id_rsa type 1
 debug1: Authentications that can continue: publickey
 debug1: Next authentication method: publickey
 debug1: Offering RSA public key: /Users/you/.ssh/id_rsa

1 表示找到了密钥
确保 SSH 公钥上传到了 Coding.net
如果以上方法都解决不了问题,请发送执行 $ssh -vvT git@e.coding.net 的结果发送至 enterprise@coding.net

Push 提示其他错误怎么办

请参考文档并确保您执行了正确的操作,如果仍然报错请在 反馈区 提供我们以下信息以便工程师为您解决问题:
Git 报错信息
执行 git --version 的结果
其他有用的信息(如屏幕截图 $ ssh -vvvT git@e.coding.net(如果您目前使用了 SSH 方式推送的话)、$ ping e.coding.net、您目前的 IP 地址,及您目前使用的 DNS 等信息)
如果可以的话运行如下的脚本,并将生成的 git.log 贴给 enterprise@coding.net

最近更新
感谢反馈有用
感谢反馈没用