關(guān)聯(lián)本地倉(cāng)庫(kù)與GitHub遠(yuǎn)程倉(cāng)庫(kù)

寫在前面

最近發(fā)現(xiàn)自己有些健忘搀愧,一些沒有系統(tǒng)學(xué)習(xí)的知識(shí)很容易忘記氢烘,例如git的一些命令還有g(shù)ithub操作执桌。這些原來(lái)都是看網(wǎng)上博客學(xué)習(xí)的,比較零散也沒有記錄先巴,當(dāng)時(shí)就是即學(xué)即用其爵,用完也就忘了。再簡(jiǎn)單的東西不總結(jié)也難以抵擋長(zhǎng)時(shí)間不用的沖擊伸蚯。所以寫一點(diǎn)總結(jié)摩渺,方便以后長(zhǎng)時(shí)間不用時(shí)還能快速上手。

本文只為了初學(xué)者關(guān)聯(lián)本地倉(cāng)庫(kù)與遠(yuǎn)程倉(cāng)庫(kù)而服務(wù)剂邮,不涉及git的具體使用摇幻。全文內(nèi)容大致分成以下幾個(gè)方面

  1. 從GitHub 創(chuàng)建倉(cāng)庫(kù),再clone到本地進(jìn)行關(guān)聯(lián)
    • git基本配置,ssh key生成與配置
  2. 從GitHub 創(chuàng)建空倉(cāng)庫(kù)绰姻,將本地倉(cāng)庫(kù)與其關(guān)聯(lián)
  3. 關(guān)聯(lián)之后如何提交到GitHub

正惩鞑啵可以通過(guò)1、3兩步或者2狂芋、3兩步來(lái)進(jìn)行本地與遠(yuǎn)程的關(guān)聯(lián)榨馁。

大致寫完之后發(fā)現(xiàn)有些亂,沒啥體系帜矾。本來(lái)想著就私有吧翼虫,但是私有已經(jīng)夠多了,為簡(jiǎn)書加點(diǎn)創(chuàng)作量吧黍特。

1. 從GitHub創(chuàng)建repo并clone到本地

GitHub創(chuàng)建repo很簡(jiǎn)單就不說(shuō)了蛙讥,按步驟來(lái)就行。
接下來(lái)是在本地clone遠(yuǎn)程倉(cāng)庫(kù)灭衷,執(zhí)行命令({xxx}表示需要換成自己的)

git clone git@github.com:{user_name}:{repo_name}.git
git clone https://github.com/{user_name}/{repo_name}.git

兩種clone方式次慢,ssh和https都可以,在這之前要進(jìn)行一些配置翔曲。下面具體介紹如何clone

1.1 git初始化配置:user name和email

這是在下載git后的第一步配置迫像,設(shè)置成遠(yuǎn)程(GitHub)的用戶名和郵箱

git config --global user.name "{user_name}"
git config --global user.email "{user_email}"

查看配置信息

git config --list

1.2 生成 SSH Key 并添加到GitHub

ssh key生成在~/.ssh目錄下。執(zhí)行

cd ~/.ssh
ls

查看是否存在 id_rsa 以及 id_rsa.pub文件(rsa是密鑰的意思)瞳遍,若不存在則需要生成ssh key闻妓。執(zhí)行

ssh-keygen -t rsa -C "user_email"

之后會(huì)有一些操作,一路回車即可掠械,生成上述兩個(gè)文件由缆,其中id_rsa.pub的內(nèi)容是我們需要的ssh key,需要在GitHub中添加該ssh key猾蒂。

在GitHub中添加也很簡(jiǎn)單均唉,settings -> SSH and GPG keys 去添加即可。添加之后表示在本機(jī)上可以通過(guò)ssh連接到GitHub的遠(yuǎn)程倉(cāng)庫(kù)肚菠。

驗(yàn)證是否成功添加SSH Key舔箭,可以執(zhí)行

ssh -T git@github.com 
// 返回: Hi {user_name}! You've successfully authenticated, but GitHub does not provide shell access.
// 表示成功添加

1.3 clone public/private repo

此時(shí)已經(jīng)可以直接 clone public repo 了,使用 https 和 ssh 都可以蚊逢。

1.4 一些已知問(wèn)題

1.4.1 配置好 ssh key 之后連接不到 GitHub

問(wèn)題形式

$ ssh -T git@github.com
ssh: connect to host github.com port 22: Connection timed out

此為網(wǎng)絡(luò)問(wèn)題层扶,時(shí)而好時(shí)而不好。
還有可能是開啟了代理的緣故烙荷【祷幔可以嘗試更換 443 端口,詳見Using SSH over the HTTPS port - GitHub Docs

1.4.2 clone 的時(shí)候報(bào)錯(cuò)

報(bào)錯(cuò)內(nèi)容

ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.

該問(wèn)題與上面一致终抽,網(wǎng)絡(luò)問(wèn)題戳表,參上焰薄。

2. 從本地創(chuàng)建repo并提交到Github

這種方法和第一種方法殊途同歸。只是一個(gè)從本地關(guān)聯(lián)到遠(yuǎn)程扒袖,一個(gè)從遠(yuǎn)程關(guān)聯(lián)到本地塞茅。從GitHub上clone會(huì)自帶GitHub的遠(yuǎn)程庫(kù)信息,而從本地新建關(guān)聯(lián)到遠(yuǎn)程需要remote add源季率。

以下部分摘自提交本地代碼到github - 只會(huì)玩輔助 - 博客園 (cnblogs.com)

  1. 需要先把本地代碼文件夾初始化成git倉(cāng)庫(kù)
  2. 本地代碼文件夾叫做工作區(qū)野瘦,需要先把工作區(qū)的代碼存到暫存區(qū),通過(guò)git add .
  3. 然后將暫存區(qū)的代碼提交到本地的版本庫(kù) 通過(guò)git commit -m '提交信息'
  4. 最后將本地版本庫(kù)提交到github倉(cāng)庫(kù)

1)本地代碼文件夾初始化成git倉(cāng)庫(kù)

git init

執(zhí)行后會(huì)生成.git目錄

2)本地代碼文件夾叫做工作區(qū)飒泻,需要先把工作區(qū)的代碼存到暫存區(qū)鞭光,通過(guò)git add .
在對(duì)本地項(xiàng)目進(jìn)行編輯后,需要將工作區(qū)的文件添加到暫存區(qū)泞遗,讓git進(jìn)行記錄惰许,這里涉及到git的運(yùn)行機(jī)制

git add . // 點(diǎn)表示當(dāng)前目錄下所有文件

3)然后將暫存區(qū)的代碼提交到本地的版本庫(kù) 通過(guò)git commit -m '提交信息'
提交的是當(dāng)前版本,提交之后可以通過(guò)git log查看本次提交版本

git commit -m "commit message"

4)最后將本地版本庫(kù)提交到github倉(cāng)庫(kù)
這里首先需要在GitHub上創(chuàng)建一個(gè)空項(xiàng)目史辙,注意 GitHub 在 initialize 的提示 Skip this step if you’re importing an existing repository.
然后執(zhí)行下述命令去關(guān)聯(lián)遠(yuǎn)程庫(kù)汹买,可以在.git/config中查看相關(guān)信息

git remote add origin git@github.com:{user_name}/{repo_name}.git // origin 是遠(yuǎn)程庫(kù)的名字,可以自定義

再把本地版本庫(kù)提交到遠(yuǎn)程

git push -u origin master    // origin是遠(yuǎn)程庫(kù)的名字聊倔,可以自定義晦毙;master是分支名,是默認(rèn)的主分支

3. 已經(jīng)關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù)

3.1 將本地修改提交到GitHub遠(yuǎn)程倉(cāng)庫(kù)

此時(shí)編輯文件耙蔑,或者新建文件之后见妒,可以執(zhí)行 git status 查看某些文件會(huì)出現(xiàn)紅色信息表示尚未add到暫存區(qū),相當(dāng)于從 2 中的 2)開始甸陌,不過(guò)省去了4)git remote add 關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù)的步驟须揣。
簡(jiǎn)而言之就是執(zhí)行下述命令

git add .
git commit -m "new commit"
git push origin main

3.2 拉取遠(yuǎn)程倉(cāng)庫(kù)內(nèi)容到本地

git pull origin main

至此已經(jīng)結(jié)束了,可以完成本地和遠(yuǎn)程單個(gè)庫(kù)的交互钱豁。沒有說(shuō)明每個(gè)命令背后的邏輯耻卡,所以遇到與文中不一樣的信息時(shí)可能會(huì)難以進(jìn)行下去。
最后附一些其他感覺不錯(cuò)的相關(guān)博文以供參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末寥院,一起剝皮案震驚了整個(gè)濱河市劲赠,隨后出現(xiàn)的幾起案子涛目,更是在濱河造成了極大的恐慌秸谢,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件霹肝,死亡現(xiàn)場(chǎng)離奇詭異估蹄,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)沫换,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門臭蚁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事垮兑±湮荆” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵系枪,是天一觀的道長(zhǎng)雀哨。 經(jīng)常有香客問(wèn)我,道長(zhǎng)私爷,這世上最難降的妖魔是什么雾棺? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮衬浑,結(jié)果婚禮上捌浩,老公的妹妹穿的比我還像新娘。我一直安慰自己工秩,他們只是感情好尸饺,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著助币,像睡著了一般侵佃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上奠支,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天馋辈,我揣著相機(jī)與錄音,去河邊找鬼倍谜。 笑死迈螟,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的尔崔。 我是一名探鬼主播答毫,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼季春!你這毒婦竟也來(lái)了洗搂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤载弄,失蹤者是張志新(化名)和其女友劉穎耘拇,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宇攻,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡惫叛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了逞刷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘉涌。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡妻熊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出仑最,到底是詐尸還是另有隱情扔役,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布警医,位于F島的核電站厅目,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏法严。R本人自食惡果不足惜损敷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望深啤。 院中可真熱鬧拗馒,春花似錦、人聲如沸溯街。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)呈昔。三九已至挥等,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間堤尾,已是汗流浹背肝劲。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留郭宝,地道東北人辞槐。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像粘室,于是被迫代替她去往敵國(guó)和親榄檬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容