本文為《廖雪峰Git教程》學習筆記,原地址:
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
萌新入門,略有心得,戲說一番。
本章包括兩部分內容,
1. git 本地庫中文件的添加和提交;
2. 連接github 添加遠程庫
先來個正版概念鎮個貼:
Git是目前世界上最先進的分布式版本控制系統(沒有之一)。
假設,
我是一個單機游戲愛好者(好吧這不是假設。。)
那麼Git 就可以理解為存檔的文件夾“save”
你每個游戲進度的存檔就可以理解為程序每個不同的版本
Git負責把這些亂七八糟的存檔文件管理起來
安裝
在linux中,可以直接輸入git查看是否安裝
若是沒有安裝,它會彈出提示你輸入:
sudo apt-get install git
創建版本庫:
$ mkdir learngit // 創建一個目錄 作為版本庫
$ cd learngit // 跳轉到該目錄下
$ git init // 對該目錄進行初始化,目錄下會多出一個.git 文件
現在就可以把 learngit 文件夾 作為一個版本庫來用了。
接下來,我們開始向版本庫裡寫文件。
在當前目錄learngit中,創建一個GGS.txt 文件,內容為:
Good good study !!
現在庫中多了一個文件,git 已經意識到,我們利用如下命令檢查一下當前git 的狀態:
$ git status
此時的狀態可以理解為git 意識到版本庫中文件發生了改變。
接下來有兩步操作:
第一步,add,鍵入:
git add GGS.txt
回車後我們發現沒有任何反應,沒有任何反應就是最好的反應,代表add成功。
git status 查看一下狀態
這裡看到add成功,文件名變成了綠色。
此時文件進入了
暫存區,並沒有提交到版本庫中。
第二步,commit,提交,鍵入:
git commit -m " add GGS.txt" // 這裡-m“..." 表示添加版本修改注釋,引號中寫當前版本做了哪些修改,方便管理。
如此,GGS.txt 文件就提交到了庫中。
前面提到了
暫存區,進行add 操作之後,文件會進入暫存區,可以理解為待上傳的隊列,我有一批修改的文件等待commit,於是我們把他們放在一起,最後提交。
小結,將文件提交到版本庫中:
先add, 再commit。
那麼如何實現遠程倉庫和本地倉庫的同步呢?
接下來說一說,github 的生存向用法。
首先注冊賬號,進入到設置頁面:
settings ---> Personal Settings ---> SSH and GPG keys ---> new SSH key
Title 隨便寫一個 比如 my ssh key
key的填寫:
回到Linux的主目錄下,找找看有沒有 .ssh 文件夾
$ cd /home/recycle // recycle 是系統用戶名
$ ls -al
如果沒有就進行創建:
$ ssh-keygen -t rsa -C "
[email protected]"
// 引號中填寫郵箱
可以不用設置密碼,一路回車
這是你有了 .ssh 文件夾,打開它,裡面有兩個文件
這倆文件就是ssh key的密鑰對
id_rsa 是私鑰 不能洩露出去
id_rsa.pub 是公鑰,可以放心地告訴任何人
打開公鑰 id_rsa.pub 將其內容復制進,github網頁裡的my ssh key中,確認提交。
這樣,github裡的賬戶就有了你本地計算機的鑰匙,可以自由出入,上傳下載數據了。
接下來實驗如何添加遠程庫
進入github 網頁
回到本地的倉庫,
$ git remote add origin
[email protected]:wly95/testing.git
這裡origin是遠程庫的名字,可以改為其他,習慣用origin
wly95 是我的github 用戶名
testing.git 是剛建立的 repository
上傳:
$ git push -u origin master
第一次進行這樣的操作時,會出現ssh警告,確認你的身份,鍵入yes,就可以了。
進入網頁就可以看到,在testing中,有著與本地倉庫一樣的文件,上傳成功。
下載(克隆)
$ git clone
[email protected]:wly95/testing.git
之後會在當前目錄中多處一個testing 目錄,打開之後:
基礎命令總結:
$ git init // 初始化git 倉庫
$ git add xxx.xxx // 添加文件進入隊列(暫存區)
$ git commit -m "xxxxxxx" // 提交當前暫存區內容進入倉庫
$ git remote add
origin [email protected]:username/gitname.git
// 建立本地與遠程倉庫的關聯
$ git push origin master // 本地庫所有內容上傳到遠程庫
$ git clone
[email protected]:username/gitname.git
// 下載(克隆)遠程庫內容到本地