Git 入門使用
Git是什麽?
Git是一個開源的分布式版本控制系統,用於敏捷高效地處理任何或小或大的項目。
Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。
關於Git的誕生,這裏還有一個小故事。
Linus在1991年創建了開源的Linux,從此,Linux系統不斷發展,已經成為最大的服務器系統軟件了。
Linus雖然創建了Linux,但Linux的壯大是靠全世界熱心的誌願者參與的,這麽多人在世界各地為Linux編寫代碼,那Linux的代碼是如何管理的呢?
事實是,在2002年以前,世界各地的誌願者把源代碼文件通過diff的方式發給Linus,然後由Linus本人通過手工方式合並代碼!
不過,到了2002年,Linux系統已經發展了十年了,代碼庫之大讓Linus很難繼續通過手工方式管理了,社區的弟兄們也對這種方式表達了強烈不滿,於是Linus選擇了一個商業的版本控制系統BitKeeper,BitKeeper的東家BitMover公司出於人道主義精神,授權Linux社區免費使用這個版本控制系統。
Linus可以向BitMover公司道個歉,保證以後嚴格管教弟兄們,嗯,這是不可能的。實際情況是這樣的:
Linus花了兩周時間自己用C寫了一個分布式版本控制系統,這就是Git!一個月之內,Linux系統的源碼已經由Git管理了!牛是怎麽定義的呢?大家可以體會一下。
安裝Git
vs2017安裝時可以勾選Git。
小夥伴們也可以去官網: https://git-scm.com/downloads
一般來說,git配合小烏龜使用 https://tortoisegit.org/download/ 根據自己的處理器位數選擇對應的就好了,還有中文語言包。
要先安裝小烏龜,再安裝語言包,安裝後需要在小烏龜裏設置語言才能使用。
簡單命令
設置全局用戶名和通訊地址:
$ git config --global user.name "Your Name" $ git config --global user.email "[email protected]"
創建版本庫:
在 Windows 上,我們只需要鼠標右鍵,選擇·Git Bash Here 就可以了
這樣打開 git 控制臺,路徑就會已經被設定到當前你點擊的目錄了。
當然也可以使用下面的語句來切換目錄。這條語句將目錄切到了C盤根目錄。
$ cd C:/
然後接下來 通過git init
命令把這個目錄變成Git可以管理的倉庫:
$ git init
可以發現當前目錄下多了一個 .git
的目錄,這個目錄是 Git 來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄裏面的文件,不然改亂了,就把Git倉庫給破壞了。
如果你沒有看到 .git
目錄,那是因為這個目錄默認是隱藏的
把文件添加到版本庫:
使用 $ git add 命令 + 文件名的方式,往倉庫裏添加一個文件。
$ git add xxx.txt
還有一個命令是添加目錄下所有的文件到倉庫。
$ git add .
創建一個提交:
用命令 $ git commit
告訴Git,把文件提交到倉庫:
$ git commit -m "test git"
-m 後面的字符串用來說明本次提交的備註信息。建議嚴肅對待這個備註,避免以後自己想要找回版本,卻想不起自己哪次提交做了改動。
查看倉庫當前狀態:
運行 $ git status
命令看看結果:
$ git status
使用 $ git log 命令可以查看顯示從最近到最遠的提交日誌
$ git log
回退版本:
首先,想要往回走的話,必須知道現在自己在哪(廢話),
在Git中,用 HEAD
表示當前版本,上一個版本就是 HEAD^
,上上一個版本就是 HEAD^^
,當然往上100個版本寫100個 ^
比較容易數不過來,所以寫成 HEAD~100
。
使用下面的語句來返回上一個版本
$ git reset --hard HEAD^
那麽問題來了,如果我們這個時候又想回去怎麽辦呢?辦法總是有的。
使用下面這個語句我們就可以去到任何一個版本。
$ git reset --hard [版本ID號]
那麽,如何才能知道版本號呢?
$ git reflog
$ git reflog
用來記錄你的每一次命令:
Git的版本回退速度非常快,因為Git在內部有個指向當前版本的HEAD指針,當你回退版本的時候,Git僅僅是把HEAD從指向了那個版本。
到這裏,git的常用基本命令就這麽多。但一般來說。我們使用 git 都是有場景的,那就是遠程倉庫。
一般來說。我們需要從遠程克隆版本庫到本地。
克隆版本庫:
$ git clone
克隆下來之後,當然也是你本地的倉庫關聯的就是遠程倉庫的地址。
把本地庫的內容推送到遠程,用git push
命令,實際上是把當前分支master
推送到遠程。
我們第一次推送master
分支時,加上了-u
參數,-u的意思是將它設置為默認主機,
Git不但會把本地的master
分支內容推送的遠程新的master
分支,還會把本地的master
分支和遠程的master
分支關聯起來,在以後的推送或者拉取時就可以簡化命令。
$ git push -u origin master
此後,每次本地提交後,就可以使用命令git push origin master
推送最新修改:
$ git push origin master
關於 push https://www.yiibai.com/git/git_push.html這裏更加詳細的介紹。
我日常都是使用命令行克隆到本地,但提交一般使用小烏龜,或者VS的Git工具。
應當善用工具,站在巨人的肩膀上。對於我們寫.NET的來說,不更應該如此嗎。
Git 入門使用