五、開始Github和碼雲之旅,新手如何上路

@Author : By Runsen

上次大家一些Git的小知識,下面我們先開始Github之旅,再繼續學習Git。

1、了解Github

我夢想這有女朋友問我:Git或GitHub到底是什麼,它們之間有什麼區別?

別睡了,孩子!沒錢沒身高沒樣子,簡直就是又窮又丑又矮的典型,天天做白日夢?

夢想的女朋友:Git或GitHub到底是什麼?

我:Git是一個跟蹤代碼更改的版本控制系統,而GitHub是一個基於Web的Git版本控制存儲庫託管服務。它提供了Git的所有分佈式版本控制和源代碼管理(SCM)功能,並提供了一些自己的特性。對於開發人員而言,這是他們可以在其中存儲項目並與志趣相投的人建立聯繫的地方。您可以將其視為「代碼雲」。(百度百科)

其實,Github就是放代碼的地方,通過Git來上傳提交代碼。

2、註冊Github

百度搜索GitHub或者直接點擊//github.com/進入官網

在這裡插入圖片描述

注意每一個人都有自己的UserName,所以你創建Github的名字一定要亮,看起來很牛逼。

Email你可以使用國內的郵箱都是可以的,要用常用的,註冊一個賬號就是一個簡單的事,

登錄就可以看得自己的倉庫和名字。

3、訪問不了Github怎麼辦

訪問Github突然上不去了,出現了網頁無法正常運行?

你應該知道Github在外國,當然訪問慢了。只要修改hosts,80%可以解決。

打開Dns檢測|Dns查詢 ,這裡推薦站長工具

//tool.chinaz.com/dns?type=1&host=github.com&ip=

在這裡插入圖片描述

.把檢測列表裡的TTL值最小的IP輸入到hosts里,並對應寫上github官網域名

下面是不同系統的hosts

Windows 系統位於 C:\Windows\System32\drivers\etc\
Android(安卓)系統hosts位於 /etc/
Mac(蘋果電腦)系統hosts位於 /etc/
iPhone(iOS)系統hosts位於 /etc/
Linux系統hosts位於 /etc/

我這裡使用Notepad++打開的,填寫的是以前的hosts

如果你的Github真的訪問不了,那用碼雲吧,碼雲是我國開發者為了打破Github壟斷,仿照Github誕生的,網址://gitee.com/

4、了解一些項目頁面

現在我找到一個Java項目,找到一個很多人點贊的Java項目,寫的應該是教程,

如果你能夠修復bug或自己添加功能 ,請發一個pull request吧!如果你提交了一個pull request,維護者就會將你的分支與已有的分支作比較來決定是否要合併。

不要想得不可能,我記得的有一個6歲的孩子pull request通過了,就是因為在注釋中寫了一個*號,可以顯得更加嚴謹好看。

5、 在碼雲平台創建項目

雖然主要使用github最主流,但是國內訪問速度慢,而且託管私有項目收費,國內一般使用碼雲gitee,國內訪問速度快,-而且託管私有項目免費,- 小公司中使用gitlab或者碼雲來搭建。大廠有自己的項目託管倉庫。

在碼雲和Github創建項目都是一樣的,不管是是使用github還是使用碼雲,步驟是差不多的,區別是github是全英文的慢一點。這裡我以碼云為例。

然後由上往下輸入你項目的名字、項目的描述,選擇這個項目是不是公開(Public)或是作為私人項目(Private)。

創建成功後,之後會出現以下界面的信息。

創建好倉庫後,你的倉庫會有兩個地址,一個是https,一個是ssh。因為使用https需要輸入用戶名和密碼,推薦使用ssh的方式。要使用ssh你需要設置你賬戶的ssh公鑰。

下一步點擊下載SSH,複製下來,也就是[email protected]:MaoliRUNsen/python_from_novice_to_master.git

遠程倉庫里已經存在項目文件,你買了台新電腦,需要將項目從遠程倉庫clone到本地進行工作。

在新電腦新建一個文件夾,再使用git clone [email protected]:MaoliRUNsen/python_from_novice_to_master.git克隆下來。

只要你克隆遠程倉庫,這樣你就可以同步到碼雲。

6、Git創建項目

要把本地倉庫和遠程倉庫聯繫起來有兩種方式, 上面是第一種,另一種是通過Git創建項目

和第一種方式的區別在於先創建倉庫,

 git init	# 創建倉庫
 git remote add origin [email protected]:MaoliRUNsen/python_from_novice_to_master.git

7、推送到遠程倉庫

當本地工作完成,需要將代碼推送到遠程倉庫,使用git push命令

git push origin master

push前需要add和commit

8、更新到本地倉庫

你的同事和你協同開發,他工作的那部分內容完成了,並且已經推送到遠程倉庫,你接下來的工作需要依賴他的那部分代碼,那麼你需要將遠程倉庫代碼拉取到本地倉庫,使用git pull命令

git pull origin master

9、倉庫成員管理

終於到了重點的時候,我們在新建項目的時候,只是寫了基本設置

倉庫是需要管理,其實這也叫做項目管理。我們主要看倉庫成員管理和部署公鑰管理

成員角色 權限
訪客(登錄用戶) 對於公有倉庫:創建 Issue、評論、Clone 和 Pull 倉庫、打包下載代碼、Fork 倉庫、 Fork 倉庫提交 Pull Request、下載附件
報告者 繼承訪客的權限。 私有倉庫:不能查看代碼、不能下載代碼、不能 Push 、不能 Fork 、 不能提交 Pull Request、可下載附件,不能上傳附件,不能刪除附件
觀察者 繼承報告者權限 私有倉庫:創建 Wiki、可以 Clone 下載代碼、可以 Pull、不能 Fork
開發者 創建 Issue、評論、Clone 和 Pull 倉庫、Fork 倉庫、打包下載代碼、創建 Pull Request、 創建分支、推送分支、刪除分支、創建標籤(里程碑)、 創建 Wiki、可上傳附件,可刪除自己上傳的附件,不能刪除他人上傳的附件、
管理員 創建 Issue、評論、Clone 和 Pull 倉庫、打包下載代碼、創建 Pull Request、 創建分支、推送分支、刪除分支、創建標籤(里程碑)、創建 Wiki、 添加倉庫成員、強制推送分支、編輯倉庫屬性、可上傳附件,可刪除自己或他人上傳的附件、 不能轉移/清空/刪除倉庫

這裡你直接可以邀請用戶,注意這個和Fork是不一樣的,Fork就是提交修改的請求,需要成員的同意。新建成員就可以同意提交修改的請求。

10、部署公鑰管理

公鑰是什麼,就是管理這個項目的鑰匙,一般都是項目成員有的。

SSH協議的Git服務,在使用SSH協議訪問倉庫倉庫之前,需要先配置好賬戶/倉庫的SSH公鑰。

你需要用Git的SSH 創建Key,然後把這個key放在這個倉庫中,一般針對是倉庫不是你託管的,在別人平台,你也是項目的成員。

YIUYE@DESKTOP-5EEO47M MINGW64 ~
$ ssh-keygen -t rsa -C "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/YIUYE/.ssh/id_rsa):
/c/Users/YIUYE/.ssh/id_rsa already exists.
Overwrite (y/n)?

YIUYE@DESKTOP-5EEO47M MINGW64 ~
$ pwd
/c/Users/YIUYE

YIUYE@DESKTOP-5EEO47M MINGW64 ~
$ cd .ssh

YIUYE@DESKTOP-5EEO47M MINGW64 ~/.ssh
$ ls
id_rsa  id_rsa.pub  known_hosts

YIUYE@DESKTOP-5EEO47M MINGW64 ~/.ssh
$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/bZaaJ9lO2a9AAuMWVpdsZfIVr4wqBA2vNAsButaNIMAx0OkYrfTloLl138+khQqteZ5b9lZdmiYEuAIS8UlBEdHmNo4LiJrLi4DdqOajpsbbdTmjCc4rlEraKOH2qVOTNEj6E+0oeYnnbQlGcA/nKdVbN8bfcsMWiN82Bjn19dP3LXC4oubRP2jWR/X3KyYcX58z1oltCbaIHtgRs1kFp6srFcU067CSmMulxmFXTalWkRSPq1d/gNWUYpii14YBIFUvwLmJlrUtXBcGZGqZhqu50FjpRcCY0TRV3DqZAR2/KnsRN7VeyuYCDmeXKc+UyNeS3zPFgKS7oyFi60CB [email protected]

複製生成後的 ssh key,通過倉庫主頁 「管理」->「部署公鑰管理」->「添加部署公鑰」 ,添加生成的 public key 添加到倉庫中。

添加後,在終端(Terminal)中輸入

ssh -T [email protected]

首次使用需要確認並添加主機到本機SSH可信列表。若返回 Hi XXX! You’ve successfully authenticated, but Gitee.com does not provide shell access. 內容,則證明添加成功

部署公鑰管理是針對不是你的項目而已,由於項目是我,做這個是沒有任何意義的。

11、如何白嫖別人的資料

Github上有很多開源免費的資料,很多人為了Star就開源了很多學習資料,在我國都是分享學習資料比較多,比如我搜索Python

下面就有幾千個學習資料,所以學東西最好在Github,然後你就下載下來,學習別人是怎麼寫代碼。

還有很多人是為了找項目,在原始項目進行二次開發。白嫖的時候,請你注意版權。

12、文章推薦

我主要推薦的Github的help官方文檔

//help.github.com/en

Github就主要看企業的文檔和Github的桌面版

Github的桌面版以後接着寫,還有碼雲的help官方文檔://gitee.com/help/


看不懂英文的,翻譯也不對,那直接看碼雲的文檔,和Github是基本一樣的

本文已收錄 GitHub,傳送門~ ,裏面更有大廠面試完整考點,歡迎 Star。


Tags: