一、Linux之父與Git的故事:
- Linux之父叫做“Linus Torvalds”,我們簡稱為雷納斯。
- Linux是開源項目,所以在Linux的早期開發中,許多世界各地的能力各異的程序員都參與到Linux的項目開發中。那時,雷納斯每天都會收到許許多多郵件,里面是每個程序員自己的代碼,雷納斯要審核其中的代碼并且不斷添加到Linux的源碼中。
- 這種工作使得雷納斯不斷壓縮自己的私人時間,終于他受不了了。于是他想要有一款分布式版本控制系統,可以讓開發者在本地創建分支和進行合并操作,無需每次都與中央服務器通信。也能夠讓開發者可以獨立工作并在本地倉庫中進行提交,然后再與其他開發者同步更改
- 于是他就找到了BitKeeper,但是BitKeeper是商業軟件,需要付費使用。違背了雷納斯對開源原則的信仰,并且使用收費的版本控制軟件可能會排斥一些開發者,限制了他們參與項目的能力。于是雷納斯和其團隊決定放棄使用BitKeeper。
- BitKeeper的老板聽聞后,決定免費向Linux社區提供BitKeeper的使用權限。后來由于社區內部的一些矛盾和沖突(Linux內核開發社區中的一些成員對于依賴BitKeeper這樣一個閉源的商業軟件一直存在不滿。他們擔心使用一個閉源工具來開發開源軟件會帶來潛在的問題,比如數據鎖定和對商業公司的依賴。于是Andrew Tridgell,知名的開源開發者(Samba項目的主要開發者之一),嘗試逆向工程BitKeeper的協議以便創建一個開源的替代工具。這一舉動被BitMover公司視為威脅,認為這可能違反了他們的使用協議。),最終導致BitMover公司決定收回Linux社區的免費使用權限。
- BitMover公司撤回Linux社區免費使用BitKeeper的權限,對Linux內核的開發產生了重大影響,因為開發者們突然失去了他們依賴的版本控制工具。面對這一情況,雷納斯迅速采取行動。決定自己開發一個新的版本控制系統。并在短短的幾個星期內就完成了基本功能。且進行了開源,于是乎Git就誕生了。
- 由于Git是開源軟件,內核開發者迅速采用了它,并對其進行了改進和擴展。
- Git不僅解決了Linux內核開發的版本控制問題,還迅速成為全球最流行的版本控制系統。現在被廣泛應用于各種開源和商業項目,許多開發團隊使用它來管理代碼庫。
二、Git操作:
2.1Git創建倉庫:
- 創建時的步驟:
????????
- 創建完成后的樣子:
????????
2.2刪除倉庫:
- 點擊管理->刪除倉庫
????????
- 確認刪除
????????
2.3創建本地倉庫:
- 復制遠端倉庫鏈接:
????????
- 查看當前Linux是否安裝了git:
????????
git --version
- 如果沒有顯式版本,可以先安裝:
????????
sudo yum install -y git
- 本地先創建一個目錄,然后輸入指定代碼,建立兩個倉庫之間的鏈接:
????????
git clone + 遠端倉庫鏈接
- 配置完成:
????????
2.4提交本地代碼到遠端倉庫:
- 將代碼放到剛才下載好的目錄中
git add .
- 提交改動到本地:
? ? ? ? 完成該步驟之后,已經將本地代碼的變化添加到了本地的.git倉庫中。
git commit -m “本次提交的核心信息,不要亂寫”
- 同步到遠端服務器上:需要填入用戶名密碼.同步成功后,刷新 Github 頁面就能看到代碼改動了.
git push
2.5 查看提交日志:
git log
2.6同步遠端倉庫到本地:
- 如果有人克隆我的開源倉庫到本地,當我更新了自己的本地倉庫并且同步了遠程倉庫。其他人想要在克隆的本地倉庫看到我的更新,就需要以下指令先更新自己的本地倉庫。
git pull
2.7多人協同,如何判斷其他人是否有過提交?
- 正常提交,如果push成功,說明遠端倉庫沒有被修改過。
- 如果遠端倉庫有別人更新,這次push就不會成功,就需要自己先git pull將遠端倉庫和自己本地倉庫同步,然后再push。
2.8查看當前倉庫是否完全提交:
- 使用指令git status查看當前倉庫是否有文件未被提交。
- 如果有文件未被提交,會說明哪個文件沒有被提交。
git status
三、首次git,需要的配置解析:
- 首次向git提交代碼,需要提交郵箱和用戶名:
????????
- 只需要將以上兩條代碼分別復制,然后將雙引號中的內容更改為自己的郵箱和用戶名即可。
- 之后的提交都可以正常提交了。
四、.gitignore文件解析:
- 可以理解為一個文件過濾器,過濾掉不想上傳到遠端倉庫的文件。
- 向.gitignore文件中添加文件后綴,所有在該文件中聲明的后綴,在上傳文件到遠端倉庫時,都會被過濾掉。