Git教學之git pull和git clone的差別(總結分享)
這篇文章為大家帶來了Git教學中git pull和git clone的區別相關知識,希望對大家有幫助。
網路上看好多人解釋pull和clone的區別,說什麼pull是更新本地程式碼,clone是本地從無到有的過程,但有一點沒提到,恰好我今天又犯了這個問題,因為我原來都是直接從遠端倉庫pull,今天突然發現發現pull不能用,clone才生效,我才意識到這個問題。決定記錄一下。
1 git pull
git pull適用於從使用者有權限的倉庫下拉程式碼,不管本地有沒有程式碼。
因為我平常下拉程式碼都是直接git pull。
1.1 我有權限的倉庫
#我有權限的倉庫指的是我自己的,或是團隊中我可以使用的倉庫。
要使用git pull首先你要確定已經連接遠端倉庫。不然你直接git pull orgin master那Github會問你:「什麼master?哪個master?你就是老子的master嗎?」
所以首先要連接遠端倉庫。
init初始化空白的本地倉庫,裡邊除了.git啥也沒有
連接遠端倉庫
1.1.1本地沒代碼
git remote -v用來顯示目前本地倉庫連接的遠端倉庫,你可以連接好幾個。然後一個倉庫是成對存在的,一個上傳一個下拉。前邊origin我一般稱為遠端倉庫代稱,後邊的是您的連線方式。
現在顯示我連接了一個github的遠端倉庫取名為origin。
空白倉庫直接使用git pull就可以下拉程式碼了。
1.1.2 本機有程式碼
本地有程式碼是什麼情況。
團隊合作,一個倉庫多人使用
你自己的倉庫,你在多台電腦上使用(例如宿捨一個,實驗室一個)
為什麼要git pull呢?不同電腦上程式碼版本不一樣。所以為了減少工作並且保證程式碼版本一致,要在每次寫程式碼的時候下拉程式碼。寫完之後push到遠端倉庫。畫個圖解釋一下。
1.2 我沒有權限的倉庫
沒權限的倉庫指的是別人的倉庫。別人不給權限,當然不能隨意修改人家的程式碼了。
沒權限的倉庫不能使用git pull。例如:
今天我像往常一樣去下載程式碼。但這是我第一次下載別人的程式碼。
我像往常一樣添加倉庫鏈接,git pull下拉。但他提示我:
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rightsand the repository exists.
Permission denied是說SSH金鑰無法使用,讓我確認我是否有權限存取或這個倉庫是不是存在。
倉庫確實是存在的。所以肯定是我沒有權限。
解釋三步驟操作:
#新增遠端倉庫,用SSH連線
從倉庫master分支下拉程式碼
刪除我新增的遠端倉庫(既然不能用我當然刪掉了)
這時候我想起來:SSH只有倉庫所有者能用。因為你電腦上設定的SSH和你github上的SSH是一對的,只有你在你電腦上使用你的github倉庫才能用SSH。
既然倉庫擁有者才能用SSH,那我換HTTP不就行了。 (此時我還沒意識到問題的嚴重性)
我又添加了https的連接
第二步我又下拉的倉庫
然後他又提示我:
############################################################################################################################################################################################### ####意思還是我無法連線。 ###fatal: unable to access 'github.com/hitvoice/Dr…': OpenSSL SSL_read: Connection was reset, errno 10054
這時候我突然意識到問題了:neutral_face:。這好像是人家的倉庫哎,我不能使用remote連接遠端倉庫之後下拉啊。因為如果我能連上的話就代表我能隨意修改人家的程式碼。所以我肯定不能使用這樣的方式pull程式碼啊! ! !
所以得用git clone
2 git clone
git clone適用於本地沒有程式碼,你要下載。你連不連接遠端倉庫。有無倉庫權限皆可。
接上邊的說,意識到使用git clone之後,我刪除了剛才的HTTPS連接遠端倉庫,然後直接git clone,程式碼成功下載下來了。
我刪除了上邊的https連接遠端倉庫的方法
git remote -v用於查看你本地倉庫都連接了哪些遠端倉庫,如果連線了會顯示倉庫代號和連線方式,我這裡輸出空白,就是沒連接任何遠端倉庫的狀態
git clone下載程式碼成功了。
上邊說的是別人的倉庫,那如果是我有權限的倉庫呢?
新建一個本地倉庫。很明顯是成功的。 SSH能成功,那HTTPS必定成功。不用remote能成功,那用了remote也必定成功。
推薦學習:《Git教學》
以上是Git教學之git pull和git clone的差別(總結分享)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

為了安全連接遠程 Git 服務器,需要生成包含公鑰和私鑰的 SSH 密鑰。生成 SSH 密鑰的步驟如下:打開終端,輸入命令 ssh-keygen -t rsa -b 4096。選擇密鑰保存位置。輸入密碼短語以保護私鑰。將公鑰複製到遠程服務器上。將私鑰妥善保存,因為它是訪問帳戶的憑據。

要刪除 Git 倉庫,請執行以下步驟:確認要刪除的倉庫。本地刪除倉庫:使用 rm -rf 命令刪除其文件夾。遠程刪除倉庫:導航到倉庫設置,找到“刪除倉庫”選項,確認操作。

如何將公鑰添加到 Git 賬戶?步驟:生成 SSH 密鑰對。複製公鑰。在 GitLab 或 GitHub 中添加公鑰。測試 SSH 連接。

要回退 Git 提交,可以使用 git reset --hard HEAD~N 命令,其中 N 代表要回退的提交數量。詳細步驟包括:確定要回退的提交數量。使用 --hard 選項以強制回退。執行命令以回退到指定的提交。

將 Git 服務器連接到公網包括五個步驟:1. 設置公共 IP 地址;2. 打開防火牆端口(22、9418、80/443);3. 配置 SSH 訪問(生成密鑰對、創建用戶);4. 配置 HTTP/HTTPS 訪問(安裝服務端、配置權限);5. 測試連接(使用 SSH 客戶端或 Git 命令)。

要通過 Git 檢測 SSH,需要執行以下步驟:生成 SSH 密鑰對。將公鑰添加到 Git 服務器。配置 Git 使用 SSH。測試 SSH 連接。根據實際情況解決可能遇到的問題。

代碼衝突是指當多個開發者修改同一段代碼導致 Git 合併時無法自動選擇更改而出現的衝突。解決步驟包括:打開有衝突的文件,找出衝突代碼。手動合併代碼,將要保留的更改複製到衝突標記內。刪除衝突標記。保存並提交更改。

Git Commit 是一種命令,將文件變更記錄到 Git 存儲庫中,以保存項目當前狀態的快照。使用方法如下:添加變更到暫存區域編寫簡潔且信息豐富的提交消息保存並退出提交消息以完成提交可選:為提交添加簽名使用 git log 查看提交內容
