1. 程式人生 > >Git 從了解到放棄

Git 從了解到放棄

配置 comm 這就是 checkout git add 初始 領域 圖形化工具 一次

1. 簡單介紹

1.1. git起源

   在1991年linus創建了Linux從此linux成為服務器領域的佼佼者,大部分web服務器、郵件、數據庫各種服務器端程序都安裝在了linux上面運行,主要是因為它運行的快速、高效、利用率高,這樣一個優秀的系統並不是一個人在維護,來自民間的眾多高手一起在維護這linux發展,那麽這麽多分布式世界各地的人如何共同維護如此多的Linux代碼呢?
   這就需要一個分布式代碼管理工具,linus使用過BitKeeper來管理代碼但是它是收費的,讓很多人用著不爽,後來linus本人就自己開發寫了一個工具來管理,這就是git的第一個版本。
   後來隨著時間推移越來越多的開源軟件通過Git來管理,為了把世界各地的開源項目管理起來,GitHub網站隨後上線了,很多流行的項目加入的此網站上面。例如我們經常使用的jquery等。

1.2. 集中式vs分布式

  集中式版本控制系統像CVS、SVN等,一般是將代碼部署到一臺服務器上面,每個開發者在每天開發之前需要從服務器上面checkout下來最新的代碼,本地修改完後要 commit,要求本地電腦與服務器連著才可以提交如果網絡帶寬慢則會很卡,記得曾經在公司提交代碼,幾十k的代碼每次提交都會卡住,很影響開發速度和開發質量。

  相比之下,git本地就有倉庫,每個開發者都有完整的代碼,可以在上面進行各種開發,沒有網絡的延遲。提高開發效率。每個人修改代碼之後會將修改的代碼互相推送給每個人,通常為了提高互相推送的傳輸效率往往搭建一臺git服務器來進行代碼的推送和拉回,可以提高開發效率。

1.3. 各種git的介紹

  1. git是一個本地工具,用來關聯遠程的git服務器,同時本地也有時光穿梭的功能
  2. gitlab,github,碼雲等都是雲服務,是本地的git的一個鏡像。在不同電腦上就可以拉取,同步。

1.4. git的安裝

一般大神都是用git的命令行工具,同時也有很多的圖形化工具:souretree等

  1. windows 下的安裝

    從官網上 :https://git-scm.com/ 上下載,傻瓜式安裝就好了

  2. linux 下安裝

yum install git

2. 本地git的使用

2.1. 初始化本地倉庫

# 使用gitbash創建一個目錄,並進入到該目錄種
mkdir learngit
cd learngit
# 初始化倉庫
git init # 在該文件下多了一個.git的隱藏目錄 $ ll -a total 24 drwxr-xr-x 1 LH 197121 0 628 14:22 ./ drwxr-xr-x 1 LH 197121 0 628 14:20 ../ drwxr-xr-x 1 LH 197121 0 628 14:22 .git/

2.2. 配置識別賬戶與密碼

這個賬戶密碼並不是登入的賬號密碼,只是作為一個識別碼,區分誰提交的。
每次commit的時候,都會帶上這個信息

git config --global --list  # 查看是否配置了
git config --global user.name hui
git config --global user.email 232344@qq.com

2.3. git的操作

使用下面的命令就可以完成一次版本的提交。

git add filename         # add dir 添加該文件下所有文件; add file1 file2 ; add . 添加所有所有的文件。
git commit -m '註釋消息'  # -m是註釋的意思。註意的是 每次版本提交都要詳細標明每次變化

2.4. 三區:工作區、緩存區、版本區

  1. 工作區就是我們工作的區域--我們編寫代碼的地方
  2. 暫存區,index(stage) -- add的地方
  3. 版本區 -- commit的地方

2.5. 查看提交的版本信息

git log
git log --pretty=oneline  # 一行顯示,還有其他參數自己研究

2.6. 版本回退-git reset

回退到上一個版本  git reset --hard HEAD^
回退到上上個版本  git reset --hard HEAD^^
回到到上100個版本 git reset --hard HEAD~100
回退到指定的版本  git reset --hard 具體的版本號(使用git log查看)

但是我們回到上一個版本之後,使用git log 看不到之後的版本了,這個很蛋疼:

  1. 使用命令行上面git log可以看到之後的版本,可以到那個版本去。
  2. 使用git reflog 可以看到每一次操作的版本號(一般都使用這個)

2.7. 撤銷-git checkout

分為兩種情況:

  1. 如果文件自修改後還沒有add到緩存區,現在撤銷的話,工作區就會和版本庫一直
  2. 如果文件已經添加到緩存區,又做了修改。現在撤銷的話,就會回到緩存去的狀態

總之,就是讓文件回到最後一次git add 或 git commit的狀態

3. 遠端倉庫

3.1. 兩種連接方式

Git 從了解到放棄