Bitbucket在PyCharm上提供Git服务(https方式)

Bitbucket创建Project、Repository参考让Bitbucket在PyCharm上提供Git服务(SSH Key方式)

笔者使用未在Bitbucket.org配置SSH Key的一台电脑来实操这个过程。

获取https clone地址

bitbucket.org中打开需同步的Repository,点击clone(克隆)获取https的地址。

类似:git clone https://<用户名>@bitbucket.org/<用户名>/<仓库名>.git

在工作区的上级目录,右键Git Bash Here打开终端:

cary@carysLaptop MINGW64 /e/Python
$ git clone https://carysunqd@bitbucket.org/carysunqd/pyc_study.git
Cloning into 'pyc_study'...
remote: Counting objects: 20, done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 20 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (20/20), done.

cary@carysLaptop MINGW64 /e/Python
$ ll pyc_study/
total 5
-rw-r--r-- 1 cary 197121 540 4ÔÂ  17 17:46 main.py
-rw-r--r-- 1 cary 197121 853 4ÔÂ  17 17:46 README.md

cary@carysLaptop MINGW64 /e/Python
$ ll -a pyc_study/
total 17
drwxr-xr-x 1 cary 197121   0 4ÔÂ  17 17:46 ./
drwxr-xr-x 1 cary 197121   0 4ÔÂ  17 17:45 ../
drwxr-xr-x 1 cary 197121   0 4ÔÂ  17 17:46 .git/
drwxr-xr-x 1 cary 197121   0 4ÔÂ  17 17:46 .idea/
-rw-r--r-- 1 cary 197121 540 4ÔÂ  17 17:46 main.py
-rw-r--r-- 1 cary 197121 853 4ÔÂ  17 17:46 README.md

cary@carysLaptop MINGW64 /e/Python

妈呀!没有使用用户名、口令,居然也clone到了项目。后面经过探索和思考,还是不明其中原因,欢迎阅读到本文的大侠出手相助!

PyCharm中打开clone到的项目(工作区文件夹)

在PyCharm中使用git可以选择记住口令。

本地commit,Fix and Commit

commit
commit

选择【Fix and Commit】

  1. 不同操作系统下,处理行尾结束符的方法是不同的:

    • windows下:CRLF(表示句尾使用回车换行两个字符,即windows下的"\r\n"换行)

    • unix下:LF(表示句尾,只使用换行)

    • mac下:CR(表示只使用回车)

  2. Git下处理“换行”(line ending)
      core.autocrlf是git中负责处理line ending的变量,可以设置3个值:true,false,inout。

    • 设置为true【config --global core.autocrlf true】

      当设置成true时,这意味着你在任何时候添加(add)文件到git仓库时,git都会视为它是一个文本文件(text file)。

      它将把crlf变成LF。

    • 设置为false【config --global core.autocrlf false】

      当设置成false时,line endings将不做转换操作。文本文件保持原来的样子。

    • 设置为input时,添加文件git仓库时,git把crlf编程lf。当有人Check代码时还是lf方式。因此在window操作系统下,不要使用这个设置。

Push(Ctrl+Shift+K)

Log in to bitbucket.org
Log in to bitbucket.org

Bitbucket.org查看变化,ok!

没使用用户名、口令即clone Repository原因探索

上面遇到一个问题,没有使用用户名、口令也clone到了项目。

似乎应验了git学习4-远程仓库中摘抄的廖老师的忠告:

“友情提示:在GitHub / Bitbucket上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感信息放进去。”

似乎即便是Private的Repository也是可以被任何人获取的,即便没有Atlassian账户。

笔者使用git config --get user.namegit config --get user.email查看本机git用户名、邮箱,发现并非Bitbucket的用户信息,而是其他平台的。检查使用的clone地址是https的,应该是没走ssh。

这是否说明即便Project、Repository被设置为 Private,无需身份验证,所有人都是可以通过clone获取到Repository的呢?当然前提是获取者取得https的git Repository地址。

果真如此吗?经验证似乎也不是这样。

由Bitbucket网站进入验证

  • 从https://bitbucket.org/carysunqd/pyc_study/src/master/README.md地址访问我的private项目,要求使用Atlassian账户登录,但即便非所有者账号成功登录,也无法在浏览器中看到所有者的Private项目源码。如下:

We can't let you see this page.
We can't let you see this page.

换电脑,使用git clone验证

  • 先安装git

  • clone提示2次口令录入,第一次录入正确,第二次录入错误,提示错误,如下。

  • 再次clone,第一次录入口令错误,第二次录入正确,正常获取到repository,如下。

dayong@samsung-dayong MINGW64 /f/fromGit/bitbucket
$ git clone https://carysunqd@bitbucket.org/carysunqd/pyc_study.git
Cloning into 'pyc_study'...
fatal: 发送请求时出错。
fatal: 请求被中止: 未能创建 SSL/TLS 安全通道。
remote: Invalid username or password
fatal: Authentication failed for 'https://bitbucket.org/carysunqd/pyc_study.git/'

dayong@samsung-dayong MINGW64 /f/fromGit/bitbucket
$ git clone https://carysunqd@bitbucket.org/carysunqd/pyc_study.git
Cloning into 'pyc_study'...
fatal: 发送请求时出错。
fatal: 请求被中止: 未能创建 SSL/TLS 安全通道。
remote: Counting objects: 29, done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 29 (delta 6), reused 0 (delta 0)
Unpacking objects: 100% (29/29), 7.12 KiB | 22.00 KiB/s, done.

dayong@samsung-dayong MINGW64 /f/fromGit/bitbucket
$

clone时初次要求口令:

pawword
passsord

clone时第二次要求口令:

pawword
pawword

posted on 2021-04-18 14:36  carysun  阅读(1156)  评论(0编辑  收藏  举报