Git與GitHub:解鎖版本控制的魔法盒子


?? 歡迎大家來訪Srlua的博文(づ ̄3 ̄)づ╭?~??

🌟🌟 歡迎各位親愛的讀者,感謝你們抽出寶貴的時間來閱讀我的文章。

我是Srlua,在這里我會分享我的知識和經驗。🎥

希望在這里,我們能一起探索IT世界的奧妙,提升我們的技能。🔮

記得先點贊👍后閱讀哦~ 👏👏

📘📚 所屬專欄:Git

歡迎訪問我的主頁:Srlua 獲取更多信息和資源。??🌙🌙

目錄

git與GitHub

Git

Git的由來

小故事~

GitHub

下載安裝

安裝 git for windows

安裝 tortoise git

注意:

使用 Github 創建項目

GitHub打不開~

注冊賬號

創建項目

Git 操作的三板斧

放入代碼

?三板斧第一招: git add

三板斧第二招: git commit

三板斧第三招: git push

小結


git與GitHub

Git

Git是一種分布式版本控制系統,由Linus Torvalds創造,主要用于幫助多人協作進行軟件開發。它用于管理項目的歷史記錄,包括文件的更改歷史和各種版本。

使用Git,開發者可以輕松地克隆現有的項目倉庫,進行更改,并提交這些更改,從而與其他開發者共享。此外,Git還能有效地處理大型項目,并支持分支管理,這使得開發者可以并行開發多個功能或修復問題。 Git的主要特點包括:

  1. 分布式版本控制:每個Git倉庫都有完整的代碼歷史記錄,因此不需要連接到遠程服務器就可以進行許多操作。

  2. 分支管理:可以輕松創建、合并和刪除分支,這使得多人在同一個項目中協作變得簡單。

  3. 暫存區(Staging Area):允許開發者選擇性地暫存文件更改,然后再提交。

  4. 非線性歷史:Git允許創建非線性歷史記錄,這為一些特定的開發場景提供了便利。

  5. 多種協議支持:可以通過HTTP、SSH、Git等多種協議進行網絡傳輸。 Git已成為許多開源項目和許多企業中軟件開發的重要組成部分。

簡單來說就是:

git是一個版本控制工具. 主要解決三個問題

  1. 代碼被喵星人吃掉了.
  2. 產品經理反復修改需求, 需要同時維護多個版本代碼.
  3. 多人協同開發

博主的博文有相關林納斯托瓦茲的介紹,Linux 系統的誕生開始于芬蘭赫爾辛基大學的一位計算機系的學生,名字為 Linus Torvalds

Git的由來

Git的由來與Linux內核開發的歷史緊密相關。

在Linux內核開發早期,開發者們使用的是一個名為BitKeeper的版本控制系統來管理代碼。BitKeeper是由BitMover公司提供的商業軟件,它允許開發者克隆整個代碼庫到本地,并在本地進行更改,然后將更改同步回中央服務器。

然而,2005年,BitMover公司改變了其許可政策,不再允許免費使用BitKeeper,這使得Linux內核開發者們面臨一個選擇:要么支付高昂的許可費用,要么尋找替代的版本控制系統。

為了繼續免費地管理Linux內核的代碼,Linux內核創始人Linus Torvalds于2005年7月發布了Git。

Git的設計受到了BitKeeper的影響,但它是一個開源的分布式版本控制系統,這意味著每個開發者都可以擁有完整的代碼歷史和版本控制功能,而不需要中央服務器。

Git的發布迅速得到了開源社區的廣泛支持,并迅速成為最流行的版本控制系統之一,不僅用于Linux內核開發,還用于無數的其他項目和大型軟件開發工作。Git的流行也促進了GitHub(一個基于Git的開源代碼托管平臺)的創建,進一步推動了開源社區的協作和代碼共享。

小故事~

以下是來自ubergizmo發布的八卦:

????????linus fucked nvidia是在2012年。當時linus在某大學開講座,問答環節中,有人吐槽自在筆記本電腦上跑個帶圖形界面的linux好麻煩。linus表現出了極大的同情,他說nvidia想給安卓市場賣大量的芯片,但又不樂意給linux提供支持,非常難纏。原話“the single worst company”。最后linus在激動之下對著攝影機伸出中指fuck了nvidia。

簡單來說,意思就是nvidia這么個毫無技術秘密可言的內核驅動,nvidia也不愿意開放編程接口,所以linus很不滿。

這個事情今天已經不可能再發生了。

????????第一,linus老了之后開始反思自己的過往,覺得自己當年口無遮攔懟天懟地,缺乏同理心,是不對的,也對社區無益。他甚至接受了相關的therapy,人變得比較溫和。曾今的嘴臭之王再也干不出對著鏡頭fuck別人的事情了。

????????第二,2012年Alex和Ilya他們還在手搓AlexNet,靠GPU搞AI還在爆發的前夜。nvidia自己可能都還沒想到這里有這么大一塊業務,自然也懶得給linux投入精力。而nvidia后來這些年靠AI賺飛了,nvidia對linux的支持也就越來越多。雖然大部分核心競爭力,諸如驅動,cuda之類的都還是閉源,但是整體來說還是樂意和開源社區合作。這一點上,linus本人也表示過贊同。

相關鏈接如下:

操作系統透視:從歷史沿革到現代應用,剖析Linux與網站服務架構-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/Srlua/article/details/136018913?spm=1001.2014.3001.5501

GitHub

GitHub是一個基于web的服務平臺,用于托管和開發Git倉庫。

它提供了Git的分布式版本控制和源代碼管理(SCM)功能,同時增加了一些自己的特性,如任務管理、訂閱、討論組、文本渲染、在線文件編輯器、協作圖譜(報表)、代碼片段分享(Gist)等。 GitHub的特點包括:

  1. 社交編碼:GitHub允許用戶對項目進行關注、點贊、評論和發起議題,這使得軟件開發變得更加社交化。

  2. 代碼托管:用戶可以在GitHub上創建public或private的代碼倉庫,用于存儲和管理項目代碼。

  3. 分支管理:用戶可以創建和管理倉庫的分支,方便多人協作和功能開發。

  4. Pull Requests:用戶可以通過Pull Requests(PR)來貢獻代碼到其他項目,也可以在自己的項目中接受他人的代碼貢獻。

  5. 代碼審查:GitHub的Pull Requests功能內置了代碼審查功能,允許項目維護者或其他貢獻者審查更改。

  6. 集成:GitHub與其他工具和服務集成,如Continuous Integration(CI)/Continuous Deployment(CD)服務、Issue跟蹤工具、代碼分析工具等。

  7. GitHub Actions:提供了一個持續集成和持續部署的平臺,允許用戶自動化構建、測試和部署他們的項目。

  8. Markdown渲染:GitHub支持Markdown語法,使得文檔和注釋的編寫更加簡潔和美觀。 GitHub成立于2008年,迅速成為最流行的代碼托管平臺之一,特別是對于開源項目。用戶可以通過GitHub進行代碼分享、協作和項目管理,它的社交特性也使得軟件開發過程中的交流和協作變得更加方便。

簡單來說就是:

Github 是 "全球最大的同性社交網站". 通過 git 可以把代碼上傳到 Github 上給全球的用戶分享

下載安裝

安裝 git for windows

這個是一個git的windows系統的命令行版本

Git - Downloads

安裝 tortoise git

這個是git的圖形界面.

Download – TortoiseGit – Windows Shell Interface to Git

注意:

  1. 先安裝 git for windows, 再安裝 tortoise git
  2. 安裝 git for windows 一路 next 即可.
  3. 安裝 tortoise git 中需要配置 git.exe, 這個是 git for windows 包含的部分. 如果 git for windows 安裝成功, 這 一步使用默認結果即可.
  4. 安裝 tortoise git 還需要配置姓名和郵箱, 這個盡量和 Github 的郵箱填成一致.
  5. 兩個工具安裝完畢后, 需要重啟電腦才能正確使用.

使用 Github 創建項目

GitHub打不開~

博主發了解決辦法,鏈接如下:

解決GitHub無法訪問的問題:手動修改hosts文件與使用SwitchHosts工具-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/Srlua/article/details/136403564?spm=1001.2014.3001.5501

注冊賬號

這個比較簡單, 參考著官網提示即可.,需要進行郵箱校驗。

創建項目

1. 登陸成功后 , 進入個人主頁 , 點擊左下方的 New repository 按鈕新建項目

2. 然后跳轉到的新頁面中輸入項目名稱(注意, 名稱不能重復, 系統會自動校驗. 校驗過程可能會花費幾秒鐘). 校驗完畢后, 點擊下方的 Create repository 按鈕確認創建.

3. 在創建好的項目頁面中復制項目的鏈接, 以備接下來進行下載.

下載項目到本地

1. 復制剛才創建好的項目的鏈接.

2. 打開指定的需要放置項目的目錄

3. 右擊目錄, 點擊 Git Clone

4. 在彈出的對話框中輸入剛才復制的項目鏈接即可

下載成功, 會出現綠色圖標.

Git 操作的三板斧

放入代碼

使用 VS 創建工程, 并把工程放在剛才下載到本地的項目路徑中.

或者將曾經寫過的代碼的工程目錄直接拷貝到項目目錄中.

三板斧第一招: git add

告知 git 工具哪些文件需要進行版本管理

此時右擊標記為 藍色 ? (表示該文件未使用 git 管理) 的目錄, 選擇 add

彈出的對話框中勾選具體需要管理的文件. 勾選完畢點擊 ok 即可.

此時圖標變成紅色感嘆號(表示該文件被git管理, 但是未提交內容)

三板斧第二招: git commit

將修改內容提交到本地

每提交一次, 就是一個版本. 比如開發完某個功能模塊, 就可以提交一次了. 后續進行版本回退都是以提交為準.

注意:此時只是提交到本地, Github 上還看不到代碼變更.

右鍵選擇 紅色感嘆號 目錄, 選擇 Git commit -> master

此時彈出了一個對話框. 可以在此處看到都需要提交哪些文件, 以及每個文件的具體改動情況. 并且需要輸入提交日志. 描述這次提交的具體改動原因是什么. 這個日志是后續進行版本回退的重要參考依據.

三板斧第三招: git push

提交的內容需要同步到服務器上, 才能讓其他人看到改動. 使用 push 即可.

右鍵需要 push 的目錄, 點擊 push

彈出的對話框確認 push. 不需要修改, 直接確認即可.

然后會彈出對話框提示輸入 Github 的賬戶和密碼 .
用戶名密碼輸入正確, 點擊 Login , 即可完成 push. 此時刷新 Github 的界面 , 就能看到新版本的代碼了。

小結

掌握了以上 Git & Github 基本操作, 希望同學們都能夠把 Github 用起來, 記錄自己的學習過程, 打造自己的專屬名片. 如果自己的 Github 日歷能夠一片綠色, 這是向面試官證明自己靠譜的最有力的證據。

希望對你有幫助!加油!

若您認為本文內容有益,請不吝賜予贊同并訂閱,以便持續接收有價值的信息。衷心感謝您的關注和支持!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/715825.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/715825.shtml
英文地址,請注明出處:http://en.pswp.cn/news/715825.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

cetos7 Docker 安裝 gitlab

一、gitlab 簡單介紹和安裝要求 官方文檔:https://docs.gitlab.cn/jh/install/docker.html 1.1、gitlab 介紹 gitLab 是一個用于代碼倉庫管理系統的開源項目,使用git作為代碼管理工具,并在此基礎上搭建起來的Web服務平臺,通過該平…

(六)Dropout抑制過擬合與超參數的選擇--九五小龐

過擬合 即模型在訓練集上表現的很好,但是在測試集上效果卻很差。也就是說,在已知的數據集合中非常好,再添加一些新數據進來效果就會差很多 欠擬合 即模型在訓練集上表現的效果差,沒有充分利用數據,預測準確率很低&a…

笨辦法學 Python3 第五版(預覽)(一)

原文:Learn Python the Hard Way, 5th Edition (Early Release) 譯者:飛龍 協議:CC BY-NC-SA 4.0 模塊 1:Python 入門 練習 0:準備工作 這個練習沒有代碼。這只是你完成的練習,讓你的計算機運行 Python。…

Unity 游戲設計模式:單例模式

本文由 簡悅 SimpRead 轉碼, 原文地址 mp.weixin.qq.com 單例模式 在 C# 游戲設計中,單例模式是一種常見的設計模式,它的主要目的是確保一個類只有一個實例,并提供一個全局訪問點。單例模式在游戲開發中具有以下幾個作用&#xf…

Matlab 機器人工具箱 Link類

文章目錄 1 Link類1.1 機械臂Link類1.2 構造函數1.3 信息/顯示方法1.4 轉換方法1.5 操作方法1.6 測試方法1.7 重載操作1.8 屬性(讀/寫)1.9 例子2 Link.Link2.1 創建機器人連桿對象2.2 OPTIONS2.3 注意2.4 舊語法2.5 例子3 Link的其他函數3.1 Link.A3.2 Link.char3.3 Link.displ…

unity學習(44)——選擇角色菜單——順利收到服務器的數據

本節的思路參考自,內容并不相同:13ARPG網絡游戲編程實踐(十三):角色選擇UI及創建面板制作(四)_嗶哩嗶哩_bilibili 現在的代碼寫在MessageManager.cs中,函數名UserHandler(是從OnMess…

Revit-二開之創建墻-(6)

Revit API窗間墻 protected override Result OnExecute(ExternalCommandData commandData, ref string message, ElementSet elements) {try{// 獲取當前活動的文檔

你是否知道Python的列表翻轉、排序和多維列表

1.reverse() 表示翻轉列表中的元素,不會生成新列表 list1 [2343, 55, 4, 345, 676, 768] list1.reverse() print(list1) # [768, 676, 345, 4, 55, 2343] 2.sort() 對原列表元素進行排序,默認是升序 list1 [2343, 55, 4, 345, 676, 768] list1…

騰訊云幻獸帕魯服務器在Linux和Windows操作系統上的安全性對比如何?哪個更加安全?

騰訊云幻獸帕魯服務器在Linux和Windows操作系統上的安全性對比如何? Linux因其資源利用率高、穩定性和安全性較強而受到許多專業用戶的青睞。這表明在Linux操作系統上,騰訊云可能會更傾向于提供高安全性的服務環境。然而,并沒有直接比較Linu…

MySql--死鎖

一、什么是mysql死鎖? MySQL中的死鎖是指多個事務同時請求對同一資源進行操作(讀或寫),并且由于資源被互斥地鎖定,導致彼此無法繼續進行。當發生死鎖時,MySQL會自動選擇其中一個事務作為死鎖的犧牲者,回滾該事務,并釋放鎖定的資源,從而解除死鎖。 以下是一些處理MyS…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的夜視行人檢測系統(Python+PySide6界面+訓練代碼)

摘要:開發高效的夜視行人檢測系統對于提升夜間安全和監控效能至關重要。本篇博客詳盡介紹了如何利用深度學習技術搭建一個夜視行人檢測系統,并提供了完整的實現代碼。本系統采用了先進的YOLOv8算法,并與YOLOv7、YOLOv6、YOLOv5進行了性能比較…

嵌入式Linux中GPIO設置的一些基本指令和步驟

一、GPIO的介紹 嵌入式Linux中的GPIO(General Purpose Input/Output,通用輸入/輸出)是一種常用的接口,允許開發者直接控制硬件設備的某些引腳,進行諸如LED控制、傳感器讀取、設備狀態監測等任務。 二、設置步驟和示例…

藍橋杯復習之二分法與前綴和

題目:最佳牛圍欄 題目鏈接:https://www.acwing.com/problem/content/104/ 題意:農夫約翰的農場由 N 塊田地組成,每塊地里都有一定數量的牛,其數量不會少于 1 頭,也不會超過 2000 頭。 約翰希望用圍欄將一…

GEE學習筆記003-訪問asset文件

在 Google Earth Engine (GEE) 中,您可以通過將 asset 文件的路徑直接寫入代碼中來引用它。這是通過在文件路徑前加上 ee.Image() 或 ee.FeatureCollection() 來實現的,具體取決于您想要導入的是影像還是矢量數據。 以下是導入 asset 文件并將其直接寫入…

第四十四天| 卡爾網 52. 攜帶研究材料、518. 零錢兌換 II、377. 組合總和 Ⅳ

01背包問題卡爾網 52. 攜帶研究材料 題目鏈接:52 攜帶研究材料 題干:小明是一位科學家,他需要參加一場重要的國際科學大會,以展示自己的最新研究成果。他需要帶一些研究材料,但是他的行李箱空間有限。這些研究材料包括…

centos7安裝夜鶯

一、前期準備 1.1.關閉防火墻,SELINUX systemctl stop firewalld.service systemctl disable firewalld.service setenforce 0 sed -i "s/SELINUXenforcing/SELINUXdisabled/g" /etc/selinux/config查看狀態 systemctl status firewalld systemctl sta…

Vue開發實例(三)項目引入Element-UI

項目引入Element-UI 一、引入Element-UI二、注冊組件1、vue2使用element-ui2、vue3使用element-ui 三、使用Element組件1、輕微改造2、驗證element是否生效 一、引入Element-UI npm i element-ui --save npm install element-ui -S等待安裝完成 二、注冊組件 1、vue2使用ele…

【Leetcode每日一題】前綴和(難度?)(25)

1. 題目解析 題目鏈接:DP34 【模板】前綴和 這個問題的理解其實相當簡單,只需看一下示例,基本就能明白其含義了。 核心在于計算題目所給區間數組元素和返回即可。 2. 算法原理 為了提高計算效率,我們可以預先計算出一個「前綴…

在github的README.md中插入視頻;在github的README.md中添加gif演示動畫

最近需要再github中上傳項目的源代碼,應導師的要求,需要再README中加入對實驗視頻的展示,但是github的README.md其實就是一個markdown文件,據我的理解這個文件里應該無法直接插入視頻吧?(如果后續有辦法直接…

UE4c++ ConvertActorsToStaticMesh ConvertProceduralMeshToStaticMesh

UE4c ConvertActorsToStaticMesh 創建Edior模塊(最好是放Editor模塊畢竟是編輯器代碼)創建藍圖函數UBlueprintFunctionLibraryUTestFunctionLibrary.hUTestFunctionLibrary.cpp:.Build.cs 目標:為了大量生成模型,我們把虛幻帶有的方法遷移成函…