如何从colab推送到github

时间:2019-12-23 11:58:39

标签: git github google-colaboratory

我将我的公共github存储库克隆到了驱动器中。我可以在笔记本上使用colab。我也可以拉。但是,尽管配置正确,但在尝试推送时仍然遇到以下错误:

!git config --global user.email "my_email"
!git config --global user.name "my_user"

!git push origin master时出现以下错误:

fatal: could not read Username for 'https://github.com': No such device or address

以前有人遇到过这个问题吗?

5 个答案:

答案 0 :(得分:4)

上面提到的所有选项对我来说都不起作用。我终于在this中篇文章中找到了答案。基本上,我所缺少的关键是:

> !git remote add origin https://<USERNAME>:<PASSWORD>@github.com/<USERNAME>/reponame.git

答案 1 :(得分:4)

标记为已接受的答案是正确的,但 GitHub 已弃用用户名密码用于 HTTPS(请参阅 here 和来自 github blog

应该创建一个个人访问令牌并使用如下 -

!git remote add origin https://<USERNAME>:<Token>@github.com/<USERNAME>/reponame.git

创建您的个人访问令牌 -

  1. 在您的 GitHub 帐户中转到设置
  2. 转到开发者设置
  3. 转到个人访问令牌
  4. 生成新令牌

请务必保存,因为您只能看到一次

答案 2 :(得分:1)

  • cd repo_directory
  • git config --get remote.origin.url检查远程URL
  • git config -e --local检查/更新[remote "origin"]部分
  • git config -e --global检查/更新[user][http]部分

**鉴于您正在使用colab,为了检查您的git配置文件,只需对{global使用! cat ~/.gitconfig,对--local使用! cat <repo_directory>/.git/config

**要写入所需的配置文件,请在新单元格中使用%%shell cmd,例如对于<repo>/.git/config,可以将同样的内容应用于~/.gitconfig

%%shell
cat <<EOF >> <repo>/.git/config
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = https://github.com/<user>/<repo>.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
EOF

-本地 默认情况下,如果未传递任何配置选项,则git config将写入本地级别。本地级别配置应用于上下文存储库git config被调用。本地配置值存储在文件中,该文件可以在存储库的.git目录中找到:.git / config

-全局 全局级别配置是特定于用户的,这意味着它将应用于操作系统用户。全局配置值存储在用户主目录中的文件中。 〜/.gitconfig在Unix系统上和

答案 3 :(得分:0)

这里是克隆,添加文件和后推的方法

!git config --global user.email 'korakot@gmail.com'
!git config --global user.name 'korakot'

from getpass import getpass
password = getpass('Password:')
!git clone https://korakot:$password@github.com/korakot/myrepo
%cd myrepo
# create a file, then add it to stage
!git add hello.txt
!git commit -m 'commit message'  # commit in Colab
!git push origin master          # push to github

答案 4 :(得分:0)

从谷歌驱动器复制文件。这些步骤是唯一需要执行的步骤。

我使用这种方法将一个大数据集(大小约 200MB)推送到 github,使用谷歌驱动器保存互联网数据和时间。使用这种方法可以使用谷歌的后端互联网推送谷歌驱动器中的任何文件或文件夹。

步骤:-

  1. 将以下代码部分推送到 colab Notebook。

    uname = "darkshadow013"
    !git config --global user.email 'email_address'
    !git config --global user.name 'darkshadow013'
    
    #Make a clone of github REPO
    !git clone https://<U_NAME>:<PERSONAL_ACCESS_TOKEN>@github.com/<U_NAME>/<REPO_NAME>
    
    #Copy file from either google drive after mounting using file browser
    !cp <PATH_OF_FILE_TO_COPY> /content/<REPO_NAME>
    
  2. 安装 Google 驱动器。

  3. 这是一个可选步骤,但如果文件大小大于 100MB 则必须执行,因为 100MB 是 github 的 file_size 限制。

    #Download git-lfs to Push Files larger than 100MB.
    !wget -O git-lfs.tar.gz https://github.com/git-lfs/git-lfs/releases/download/v2.13.2/git-lfs-linux-amd64-v2.13.2.tar.gz
    !tar xzf git-lfs.tar.gz
    !bash ./install.sh
    !git lfs install
    %cd <REPO_NAME>
    #FILE_NAME is the file with size >100MB and you wants to PUSH to GITHUB
    !git lfs track <FILE_NAME>
    
  4. 最后一步是添加文件,提交然后推送。

     !git add <FILE_NAME>
     !git commit -m 'commit message'  # commit in Colab
     !git push
    

这就是你需要做的就是运行这段代码,瞧!!

谢谢