1. 程式人生 > 其它 >git應用與github

git應用與github

git

Git 是一個開源的分散式版本控制系統,用於敏捷高效地處理任何或小或大的專案。

是一個開源的分散式版本控制系統,可以有效、高速地處理從很小到非常大的專案版本管理。也是[Linus Torvalds]為了幫助管理Linux核心開發而開發的一個開放原始碼的版本控制軟體。

ssh

SSH 為 [Secure Shell](https://baike.baidu.com/item/Secure Shell) 的縮寫,是建立在應用層基礎上的安全協議。SSH 是較可靠,專為遠端登入會話和其他網路服務提供安全性的協議。利用 SSH 協議可以有效防止遠端管理過程中的資訊洩露問題。SSH最初是UNIX系統上的一個程式,後來又迅速擴充套件到其他操作平臺。SSH在正確使用時可彌補網路中的漏洞。

傳統的網路服務程式,如:ftp、pop和telnet在本質上都是不安全的,因為它們在網路上用明文傳送口令和資料,別有用心的人非常容易就可以截獲這些口令和資料。而且,這些服務程式的安全驗證方式也是有其弱點的, 就是很容易受到“中間人”(man-in-the-middle)這種方式的攻擊。所謂“中間人”的攻擊方式, 就是“中間人”冒充真正的伺服器接收你傳給伺服器的資料,然後再冒充你把資料傳給真正的伺服器。伺服器和你之間的資料傳送被“中間人”一轉手做了手腳之後,就會出現很嚴重的問題。通過使用SSH,你可以把所有傳輸的資料進行加密,這樣"中間人"這種攻擊方式就不可能實現了,而且也能夠防止DNS欺騙和IP欺騙

。使用SSH,還有一個額外的好處就是傳輸的資料是經過壓縮的,所以可以加快傳輸的速度。SSH有很多功能,它既可以代替Telnet,又可以為FTP、PoP、甚至為PPP提供一個安全的"通道" 。

git 使用 rsa,rsa 要解決的一個核心問題是,如何使用一對特定的數字,使其中一個數字可以用來加密,而另外一個數字可以用來解密。這兩個數字就是你在使用 git 和 github 的時候所遇到的 public key 也就是公鑰以及 private key 私鑰。本地用私鑰,上傳公鑰。

本地建立ssh key

$ ssh-keygen -t rsa -C "[email protected]"

~/下生成.ssh資料夾,進去,開啟id_rsa.pub,複製裡面的key。標題建議和倉庫名一致, 便於區分.

驗證:$ ssh -T [email protected]

與github建立連線

1.github上建立倉庫

2.本地建立倉庫 git init // 把這個目錄變成Git可以管理的倉庫,本地多一個.git資料夾,用來跟蹤管理版本庫

mac第一次建倉庫出現問題:xcode-select --install

git clone username@host:/path/to/repository 相當於建立一個遠端倉庫的克隆版本

3.關聯github倉庫 git remote add origin [email protected]:Hexagon-Man/HelloWorld.git

4.提交程式碼

git add 新增檔案

git add . // 將當前目錄下修改的所有程式碼從工作區新增到暫存區 . 代表當前目錄

git remote add origin [email protected]:xxx/xxx.git // 關聯遠端倉庫

git commit -m "" // 提交到了 HEAD,但是還沒到你的遠端倉庫

git push <遠端主機名> <本地分支名> <遠端分支名> ,例如 git push origin HEAD:refs/for/master // refs/for 的意義在於我們提交程式碼到伺服器之後是需要經過code review 之後才能進行merge的

git push -u origin master // 把本地庫的所有內容推送到遠端庫上

git倉庫結構

本地倉庫由 git 維護的三部分組成。第一個是 工作目錄,它持有實際檔案;第二個是 暫存區(Index),它像個快取區域,臨時儲存改動;最後是 HEAD,它指向你最後一次提交的結果。

git命令

git checkout -b f //建立並切換分支

git branch -d f //刪除分支

git push origin <branch> //分支推送到遠端

git pull //獲取fetch併合併到本地