在開始講解有關bash的知識以前,我們先來了解一下什麼是版本控制系統,集中式版本控制和 分布式版本控制,以及倉庫的概念 版本控制是指對軟體開發過程中各種程式代碼、配置檔案及說明文檔等檔案變更的管理,是軟體 配置管理的核心思想之一。

集中式版本控制系統:版本庫也即是代碼庫是集中存放在一個中央伺服器中的,當程式員需要修改代 碼的時候,就需要在中央伺服器取的最新的版本,然後繼續寫代碼或者修改,修改完成以後再把自己 的修改後的推送到伺服器端,進行更新或者完善,你在修改的時候必須要在服務端取得代碼.
常見的系統(工具)
CVS和SVN:CVS作為最早的開源而且免費的集中式版本控制系統,到現在還 有不少人在用。但是由于CVS自身設計的問題,會造成送出檔案不完整,版本庫莫名其妙損壞的情 況。和他同樣是開源而且免費的SVN修正了CVS的一些穩定性問題,是目前用得最多的集中式版本庫 控制系統。
分布式版本控制系統
系統沒有‘中央伺服器’,每個人的電腦上都是一個完整的版本庫,工作時不 需要聯網,開發者之間隻需把各自的修改推送給對方(同一網絡下),就可以互相看到對方的修改 了。分布式版本控制系統通常也需要一台電腦作為“中央伺服器”,這個伺服器隻是為了友善大家交 換意見,沒這台“伺服器”也是可以的,隻是交換修改不友善而已,是以一般的公司都會在搭建一個 伺服器作為“中央伺服器”進行資料互動。
常見的系統(工具) Git
什麼是git、bash、git bash、git shell
git: 一個快速的分布式版本控制系統(工具),常見的使用git的網站就是Github bash: 是uninx shell的一種,最常用的shell之一
git bash:友善在windows下使用git指令的模拟終端(windows自帶的cmd太弱,uninx和luinx可 以直接使用)
git shell:也就是安裝了git的shell
gitbash
剛剛看了基本的介紹以後呢,現在我們進行具體的操作,來使用gitbash,在後面的實驗都是在 windows上進行的。
輕按兩下點開以後是一個bash指令行。
gitbash的配置
gitbash是可以一個本地倉庫連接配接多個遠端倉庫的,你可以将一個本地倉庫推到多個遠端倉庫
推和拉介紹:推也就是把本地的倉庫内容送到遠端,拉就是把遠端的代碼拉到本地
連接配接你的賬戶:
Git init #将目前目錄作為git目錄。
git config ‐‐global user.name 'Your Name'
git config ‐‐global user.email '[email protected]'
# 這是全局配置,也就是你所有連接配接的倉庫都會用這個連結資訊,如後面還有建立多個連接配接的話,global就會 換成對應的倉庫資訊
進入本地倉庫
進入倉庫的方法有兩種,第一個是打開exe然後cd進入到對應的位置(不推薦),第二種是直接在本地倉庫右鍵選擇git bash here(由于我們是講解的bash,是以GUI頁面就不在講述)就能看到界面了:
添加檔案(git add)
這條指令是我們在為倉庫的變更進行記錄,在這之前我們使用 git status 檢視暫存區中的内容,暫存區就是我們修改了,但是還沒有進行儲存的檔案,我先建立一個檔案,然後使用這條指令進行檢視 :
首先建立測試檔案
使用git add 檔案名,進行儲存(add後面需要空一格),注意現在儲存的位置是在暫存區!這樣我們就将這個txt文檔儲存好了,并且處在待送出的狀态。
# git add的文法
git add file_name # 添加指定檔案
git add ./all # 添加所有檔案
git add dir/file.txt # 添加指定檔案夾的文檔
送出(git commit-m“修改注釋”)
我們可以使用這條指令來将本地倉庫暫存區的檔案進行送出:
這個時候就到了一個關鍵的位置,就是和我們遠端的倉庫進行連接配接,本地的倉庫要和遠端的倉庫進行互動,需要用到 git remote add origin + 倉庫連接配接 :
首先進入github建立倉庫
倉庫的連結是一個https的超連結,進行配置:
git remote add [簡稱] [你的位址]
git remote -v #檢視
使用 git remote ‐v 檢視目前連接配接的倉庫。由于我在建立的時候是沒有生成 .md 檔案的,是以我接 下來是可以直接推上去的,要是我倉庫中有 .md 檔案(或者含有其他檔案),需要使用 git pull ‐‐ rebase origin master 進行合并,這也是為了保證統一。
第一次使用需要登入
我們就已經完成了送出檔案到GitHbu項目中了。可以在這裡看到所有的資訊,以及我送出的時間。
檢視資訊
檢視目前版本資訊(也就是最近一個commit)
git log
也可以顯示某個檔案的版本曆史,包括檔案改名
git log ‐‐follow 檔案名.檔案類型
git whatchanged 檔案名.檔案類型 顯示所有送出過的使用者,按送出次數排序
git shortlog ‐sn 顯示指定檔案是什麼人在什麼時間修改過
git blame 檔案名.檔案類型
如何回到過去的某個節點(git reset --hard id)
本地倉庫回到某個節點是需要使用 git reset ‐‐hard id 進行操作
本地搞定以後就需要将遠端的倉庫傳回到這個節點,使用( git push ‐f ‐u origin master 然後輸入 賬号密碼強推,要是直接使用git push origin的話就會報錯,如下):
如何拉取倉庫
# 拉取指令
git clone +位址