如何使用Git將Github項(xiàng)目拉到本地
前言
因?yàn)閲鴥?nèi)訪問GIthub速度比較慢,復(fù)制粘貼代碼又慢效率也低,所以建議下載Git工具,直接把Github的項(xiàng)目整個(gè)下載到本地的文件夾
安裝配置git
步驟如下:
sudo apt-get install git
git config --global user.name "your user name"
git config --global user.email "your email"
ssh-keygen -C "your email" -t rsa
cd ~/.ssh
gedit id_rsa.pub 將其中的所有內(nèi)容復(fù)制,到git上添加SSH Key
使用步驟
1.打開Github
- 找到你想要獲取的項(xiàng)目
fork倉庫(非必須)
- 如果你需要對代碼進(jìn)行更改,然后還需要變成自己的項(xiàng)目,在自己的倉庫進(jìn)行開發(fā),可以fork下來(不需要可以跳過)
為什么要fork倉庫?
因?yàn)槲覀儧]有任何的權(quán)限向GitHub上的倉庫提交任何的修改,我們只能把倉庫fork到本地,然后在本地進(jìn)行修改后,再提交到GitHub上,這樣就可以修改倉庫了
如何fork倉庫
超級簡單…h(huán)hhh
點(diǎn)擊一個(gè)fork就行了
- 復(fù)制GIthub項(xiàng)目的下載地址
- 如果配置了SSH,可以使用SSH獲取地址,使用SSH拉取速度會(huì)更快
拉取不同的分支(非必須)
上面是拉取的master分支,也就是主分支,如果你需要拉取部分或其他的分支可以這樣:
步驟:
- 找到master按鈕
- 選擇要拉取的分支
- 新建文件夾–>右鍵–>git bash here
# 步驟基本和拉取項(xiàng)目一樣,但是命令變了
$ git clone -b [分支名] [項(xiàng)目地址]
2.打開Git
如果你是剛下載的Git,先配置一下用戶名和郵箱
# 在Git Bash中輸入以下命令
1. git config --global user.name "你的用戶名"
2. git config --global user.email "你的郵箱"
基本配置就完成了!??!
下面介紹如何將項(xiàng)目下載到本地:
-
在你想要放置項(xiàng)目文件的位置新建一個(gè)文件夾
-
右鍵點(diǎn)擊Git Bash Here
-
輸入命令:
git clone 粘貼之前復(fù)制的項(xiàng)目下載地址
- 回車運(yùn)行,進(jìn)入下載
- 下載完成!
然后新建的文件夾里就會(huì)出現(xiàn)項(xiàng)目的所有文件啦?。?!
啰嗦兩句
- 還未注冊Github的小朋友,先注冊一下哦 Github官網(wǎng)
- 還未下載Git的小朋友,先行下載Git工具趴 git下載點(diǎn)這
提交代碼到github
- 把github項(xiàng)目fork到本地
- 拉取你倉庫你的同名項(xiàng)目到本地
- 修改里面的代碼
- 提交代碼操作
前三步,很簡單就上面的操作
- 許多開發(fā)人員從該存儲(chǔ)庫克隆,推送到他們自己的獨(dú)立存儲(chǔ)庫,并要求集成商引入他們的更改。這是開源或 GitHub 存儲(chǔ)庫中常見的開發(fā)模型類型。
如何提交代碼
-
git branch
看下你的本地分支 -
git status
看下你的修改狀態(tài)(修改了哪個(gè)文件,添加了哪個(gè)文件,刪除了哪個(gè)文件) -
git stash
把本次修改先暫存起來,為了拉develop的代碼 -
git pull origin develop
每次提交代碼前一定要拉代碼,保證本地拉到最新 -
git stash pop
把暫存的代碼釋放出來和develop的合并,有沖突就解決一下 -
git status
解決完沖突后,再看下你的修改狀態(tài),確保都是你的本次修改 -
git checkout -b 分支名
切一個(gè)新分支,分支名要有意義一點(diǎn)(feat / fix / refine - xxx) -
git add .
添加本次所有的改動(dòng)文件,如果不想提交那么多,就git add 要提交的文件名
-
git commit -m "提交信息"
提交信息是本次提交的概述,如fix home page ui bug -
git push origin 分支名
直接點(diǎn)擊remote中的URL,用瀏覽器打開,補(bǔ)充一下提交信息,assignee給同伴,勾選merge options,然后點(diǎn)commit就好了
注:git commit -m "..."
以后,發(fā)現(xiàn)本地少提交一個(gè)文件,可以用git commit --amend
修補(bǔ)提交,再次git push -f
就可以了,不會(huì)出現(xiàn)多個(gè)commit的情況
遠(yuǎn)程提交倉庫
create a new repository on the command line
echo "# doc_qa" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/xxx/xxx.git
git push -u origin main
push an existing repository from the command line
git remote add origin https://github.com/xxx/xxx.git
git branch -M main
git push -u origin main
- 遇到這個(gè)報(bào)錯(cuò)(Windows下)
問題分析:
格式化與多余的空白字符,特別是在跨平臺(tái)情況下,有時(shí)候是一個(gè)令人發(fā)指的問題。由于編輯器的不同或者文件行尾的換行符在 Windows 下被替換了,一些細(xì)微的空格變化會(huì)不經(jīng)意地混入提交,造成麻煩。雖然這是小問題,但它會(huì)極大地?cái)_亂跨平臺(tái)協(xié)作。
- 其實(shí),這是因?yàn)樵谖谋咎幚碇校珻R(CarriageReturn),LF(LineFeed),CR/LF是不同操作系統(tǒng)上使用的換行符,
Dos和Windows平臺(tái): 使用回車(CR)和換行(LF)兩個(gè)字符來結(jié)束一行,回車+換行(CR+LF),即“\r\n”;
Mac 和 Linux平臺(tái):只使用換行(LF)一個(gè)字符來結(jié)束一行,即“\n”;
最早Mac每行結(jié)尾是回車CR 即’\r’,后mac os x 也投奔了 unix。
- 許多 Windows 上的編輯器會(huì)悄悄把行尾的換行(LF)字符轉(zhuǎn)換成回車(CR)和換行(LF),或在用戶按下 Enter 鍵時(shí),插入回車(CR)和換行(LF)兩個(gè)字符。
解決:
Git 可以在你提交時(shí)自動(dòng)地把回車(CR)和換行(LF)轉(zhuǎn)換成換行(LF),而在檢出代碼時(shí)把換行(LF)轉(zhuǎn)換成回車(CR)和換行(LF)。
#win下 提交時(shí)轉(zhuǎn)換為LF,檢出時(shí)轉(zhuǎn)換為CRLF
$ git config --global core.autocrlf true
#Linux、Mac 提交時(shí)轉(zhuǎn)換為LF,檢出時(shí)不轉(zhuǎn)換
$ git config --global core.autocrlf input
合并一次MR中的多個(gè)commit
-
git log
查看log,看一下你有幾次commit需要合并
2.git rebase -i HEAD~X
X代表有幾次commit需要合并,如HEAD2,HEAD3
把打開的rebase信息中的第二行的開頭pick 修改為f,然后ctrl x,保存,會(huì)出現(xiàn)成功的提示哦
-
git push -f origin
分支名 搞定
幾個(gè)常用命令
-
git stash list
查看暫存的所有記錄 -
git stash apply stash{X}
釋放第x條記錄 -
git stash drop stash{X}
刪除第x條記錄
4.git branch -D 分支名
刪除本地分支
5.git push origin --delete 分支名
刪除遠(yuǎn)程分支
刪除commit
參考鏈接:刪除commit的三種方法
問題解決
- 代理問題
用了clash導(dǎo)致的
重新設(shè)置代理,將你的代理端口號,設(shè)置上去。
我的端口是7890,設(shè)置如下:
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890
error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: CANCEL (err 8) send-pack: unexpected disconnect while reading sideband packet Writing objects: 100% (120/120), 91.63 MiB | 127.00 KiB/s, done. Total 120 (delta 2), reused 0 (delta 0), pack-reused 0 fatal: the remote end hung up unexpectedly
- 原因可能有文件過大、網(wǎng)速太差、以及一些國外資源因?yàn)閴Φ囊蛩赜绊懙鹊?/li>
解決方式:
1、文件太大,解決方式為git添加 compression 配置項(xiàng)
git config --global core.compression -1
- compression 是壓縮的意思,從 clone 的終端輸出就知道,服務(wù)器會(huì)壓縮目標(biāo)文件,然后傳輸?shù)娇蛻舳?,客戶端再解壓。取值?[-1, 9],-1 以 zlib 為默認(rèn)壓縮庫,0 表示不進(jìn)行壓縮,1…9 是壓縮速度與最終獲得文件大小的不同程度的權(quán)衡,數(shù)字越大,壓縮越慢,當(dāng)然得到的文件會(huì)越小
2、可以增加git的緩存大小git config --global http.postBuffer 1048576000 (1G)
3、配置git的最低速和最低速時(shí)間
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999 單位 秒
- 如果是網(wǎng)絡(luò)問題
git config --global http.version HTTP/1.1
或者
git config --global http.version HTTP/2
-
上傳文件太大
- 設(shè)置大的緩存區(qū)
- 設(shè)置長響應(yīng)時(shí)間
- 淺克隆
git config http.postBuffer 524288000
git clone --depth=1 xxx
- global配置對當(dāng)前用戶生效,如果需要對所有用戶生效,則用–system
項(xiàng)目實(shí)在太大…
- 且你只需要其中的某一個(gè)文件或者文件夾
用這個(gè)網(wǎng)站:DownGit
在框框里輸入你需要的下載的GitHub的文件的地址
具體咋用嘞?
- 復(fù)制url鏈接,注意是url鏈接(瀏覽器上方框框里的的地址)
- url地址粘貼到DownGit的框框里,然后你會(huì)發(fā)現(xiàn)地址里面會(huì)有tree/master
- 刪除掉tree和master,剩下的路徑就是對的
- 點(diǎn)擊Download就可以下載了
為開源倉庫貢獻(xiàn)代碼
pull request : 拉取請求,我要請求官方倉庫拉取我所修改的代碼,如果官方同意,我們就可以修改代碼了
- 注意:先要向倉庫提交代碼
文章來源:http://www.zghlxwxcb.cn/news/detail-790601.html
- 點(diǎn)擊新建請求,等待驗(yàn)證通過…
文章來源地址http://www.zghlxwxcb.cn/news/detail-790601.html
到了這里,關(guān)于如何使用Git將Github項(xiàng)目拉到本地的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!