您是否在工作或學習中遇到過這種情況:為了防止文檔丟失或更改錯誤,我們常常需要復制出多個版本的文檔,例如:
“報告-v1” “報告-v2” “報告-v3” “報告-確定版” “報告-最終版” “報告-究極進化版” … 每個版本都有各自的內容,但最終我們只會使用一個版本。然而,在此之前的工作卻需要這些不同版本的文檔,因此每次都需要復制粘貼副本,導致文件數量不斷增加。文件數量的增加不是問題,問題是:隨著版本數量的不斷增多,您還能記得這些版本各自修改了什么嗎?這種情況不僅限于文檔,我們編寫的項目代碼也面臨同樣的問題!
一、版本控制器 為了更方便地管理這些不同版本的文件,版本控制器應運而生。所謂的版本控制器,是一個可以記錄文件歷史和發展過程的系統。簡單來說,它是一個可以記錄工程的每一次改動和版本迭代的管理系統,同時也便于多人協同工作。目前最主流的版本控制器就是 git。Git 可以管理電腦上所有格式的文件,例如 doc、excel、dwg、dgn、rvt 等。對于開發人員來說,Git 最重要的功能是幫助管理軟件開發項目中的源代碼文件!
二、Git 簡史 與生活中的許多偉大事物一樣,Git 誕生于一個充滿爭議和創新的時代。
Linux 內核開源項目擁有眾多參與者。大多數 Linux 內核維護工作都花費在提交補丁和保存歸檔的繁瑣事務上(1991-2002年間)。到 2002 年,整個項目組開始使用一個專有的分布式版本控制系統 BitKeeper 來管理和維護代碼。
到了 2005 年,開發 BitKeeper 的商業公司與 Linux 內核開源社區的合作關系結束,他們收回了 Linux 內核社區免費使用 BitKeeper 的權力。這迫使 Linux 開源社區(特別是 Linux 的創始人 Linus Torvalds)基于使用 BitKeeper 的經驗教訓,開發出自己的版本系統。他們為新的系統制定了若干目標:
? 速度 ? 簡單的設計 ? 對非線性開發模式的強力支持(允許成千上萬個并行開發的分支) ? 完全分布式 ? 有能力高效管理類似 Linux 內核一樣的超大規模項目(速度和數據量)
自 2005 年誕生以來,Git 日臻成熟完善,在高度易用的同時,仍保留著初期設定的目標。它的速度極快,非常適合管理大型項目,并擁有令人難以置信的非線性分支管理系統。
三、安裝 Git
1 yum install git
四、在 gitee/Github 創建項目 注冊賬號,這個過程比較簡單,可以參考官網的提示,需要進行郵箱驗證。
創建項目:
登錄成功后,進入個人主頁,點擊右上角的“新建倉庫”按鈕新建倉庫。
然后跳轉到新頁面中,輸入倉庫名稱(注意,名稱不能重復,系統會自動校驗。校驗過程可能會花費幾秒鐘)。校驗完畢后,根據提示填寫信息,初始化倉庫后,確認創建。
在創建好的項目頁面中復制項目的鏈接,以便接下來進行下載。
下載項目到本地:
創建好一個放置代碼的目錄。
1 git clone [url]
這里的 url 就是剛剛建立好的項目的鏈接。
五、三板斧 1、git add 命令將代碼放到剛才下載好的目錄中
git add [文件名]#添加指定文件git add . #所有未添加的文件
將需要用 git 管理的文件告知 git。
2、git commit 命令提交改動到本地
git commit -m "XXX" #添加描述
最后的 “.” 表示當前目錄。提交的時候應該注明提交日志,描述改動的詳細內容。
3、git push 命令同步到遠端服務器上
git push
需要填入用戶名密碼。同步成功后,刷新 github 頁面就能看到代碼改動了。
配置免密碼提交:https://www.php.cn/link/dbb6b4e727f400075c39bd45209c5b1c
六、其他 1、git pull 命令拉取托管平臺的代碼數據到本地文件夾。命令格式:
git pull
2、git log 命令命令格式:
git log# 查看所有提交過的版本的詳細信息 git log --pretty=oneline# 只顯示版本號和提交時的備注信息
3、git reflog 命令命令格式:
git reflog# 可以查看所有分支的所有操作記錄(包括已經被刪除的commit記錄和reset的操作)
4、git stash 命令該命令主要用于解決文件沖突。命令格式:
git stash# 保存當前工作進度,會把暫存區和工作區的改動保存起來
七、.ignore 文件 1、為什么使用 .gitignore ? 在一些項目中,我們不想讓本地倉庫的所有文件都上傳到遠程倉庫中,而是有選擇的上傳,比如:一些依賴文件(node_modules下的依賴)、bin 目錄下的文件、測試文件等。一方面將一些依賴、測試文件都上傳到遠程傳輸量很大,另一方面,一些文件對于你這邊是可用的,在另一個人那里可能就不可用了,比如:本地配置文件。
為了解決上述問題,git 引入了 .gitignore 文件,使用該文件來選擇性的上傳文件。
2、如何創建.gitignore 進入項目的目錄下,點擊右鍵單擊【git bash】
在命令行下輸入【touch .gitignore】創建文件
$ touch .gitignore
創建成功
3、.gitignore 的用法簡介 Git 忽略規則:
#?????#注釋,內容被 Git 忽略.sample # 忽略所有 .sample 結尾的文件!lib.sample # 但 lib.sample 除外/TODO # 僅僅忽略項目根目錄下的 TODO 文件,不包括 subdir/TODObuild/ # 忽略 build/ 目錄下的所有文件doc/.txt # 會忽略 doc/notes.txt 但不包括 doc/server/arch.txt[]?????# 匹配字符列,如 [Ll]ibrary 意為Library或library均滿足條件
如果沒有特殊要求,也可以使用官方版本的 .gitignore 配置,通常初始化倉庫會自動生成,若無請自行搜尋。
八、Git 小總結