Git極簡學習筆記

git的學習筆記

1. 安裝git

2. 簡單開始

建立版本庫,即在須要編寫的代碼的工做區創建,能夠在git bash或者cmd中鍵入git

git initgithub

就會生成一個 .git 文件夾bash

假設倉庫中有了一些代碼文件,文本等好比 readme.txt服務器

那麼接下來僅須要兩步就能夠將一個文件提交到倉庫,爲何須要兩步呢,而不是直接直接提交,且記住一個重要概念:暫存區ssh

第一步: 將文件添加到Git倉庫 git add readme.txt學習

第二步: 將文件提交到倉庫,分號裏就是描述此次提交作了什麼事情 git commit -m "wrote a file about readme"加密

而爲何Git提交文件到倉庫須要add、commit兩步呢? 由於commit一次能夠提交不少文件,因此能夠屢次add不一樣的文件code

能夠經過git status 查看目前文件提交的狀態,包括更改,是否提交等開發

那麼若是添加了修改,可是不記得那些具體內容了,能夠經過git diff readme.text 查看修改的詳細內容rem


那麼這裏就有一些應用了,好比咱們已經編寫代碼並不斷修改提交屢次到倉庫中了,可是咱們若是誤操做好比刪除、改錯了,想要回退呢? 好比回退到昨天修改的文件內容,那麼能夠經過git log 查看咱們的提交記錄

目前看來這個功能意義不大,彷佛是回退的一次提交的全部內容,即一天的工做都會回退了,再說這種回退極少應用到,須要再說吧


接下里解釋 工做區 和 暫存區, 工做區即存檔代碼的顯式區域,而暫存區是git的,凡人看不着的,是存放在.git中的,而第一步git add實際就是將文件放入暫存區中,第二步git commmit -m "..."提交更改,即將暫存區的內容提交到當前分支中

當咱們在建立git倉庫版本庫時,git自動爲咱們建立了一個惟一一個master分支

一句重要的話: Git 管理的是修改,即git始終提交的都是暫存區的內容,而暫存區的內容取決於添加到暫存區時刻的修改,git追蹤的是修改,而修改的狀態添加或提交都取決於用戶

上面提到回退確實挺麻煩的,可是撤銷修改確有必定的實用意義,是針對單個文件的撤銷修改,其目的是

命令git checkout -- readme.txt意思就是,把readme.txt文件在工做區的修改所有撤銷,這裏有兩種狀況:

一種是readme.txt自修改後尚未被放到暫存區,如今,撤銷修改就回到和版本庫如出一轍的狀態;

一種是readme.txt已經添加到暫存區後,又做了修改,如今,撤銷修改就回到添加到暫存區後的狀態。

可是也就還存在一種狀況將錯誤的文件添加到了暫存區,固然是沒有提交的狀態,那麼能夠經過git reset HEAD readme.txt把暫存區的修改撤銷掉,從新放回工做區 ,而後咱們能夠再git checkout -- readm.text丟棄在工做區修改的內容


刪除操做,好比咱們想要刪除已經在版本庫中的某個文件

git rm readme.txt

git commit -m "rm readme.txt"

便可完成真正真正刪除操做,那麼我刪錯了怎麼辦呢? 能夠:git checkout -- test.txt

3. 遠程倉庫-github

接下來是比較有趣的內容,即遠程倉庫, 這也是Git的殺手級功能,利用github.com獲取免費強大的遠程倉庫再好不過了! 因爲本地Git倉庫和GitHub倉庫之間的傳輸是經過SSH加密的,因此,須要一點設置:

$ ssh-keygen -t rsa -C "youremail@example.com"

而後一路回車便可 第2步:登錄GitHub,打開「Account settings」,「SSH Keys」頁面 而後,點「Add SSH Key」,填上任意Title,在Key文本框裏粘貼id_rsa.pub文件的內容

爲何GitHub須要SSH Key呢?由於GitHub須要識別出你推送的提交確實是你推送的,而不是別人冒充的,而Git支持SSH協議,因此,GitHub只要知道了你的公鑰,就能夠確認只有你本身才能推送。

固然,GitHub容許你添加多個Key。假定你有若干電腦,你一下子在公司提交,一下子在家裏提交,只要把每臺電腦的Key都添加到GitHub,就能夠在每臺電腦上往GitHub推送了。

最後友情提示,在GitHub上免費託管的Git倉庫,任何人均可以看到喔(但只有你本身才能改)。因此,不要把敏感信息放進去。

若是你不想讓別人看到Git庫,有兩個辦法,一個是如今Github也已經免費了私密倉庫!!! 另外一個辦法是本身動手,搭一個Git服務器,由於是你本身的Git服務器,因此別人也是看不見的。這個方法咱們後面會講到的,至關簡單,公司內部開發必備。

確保你擁有一個GitHub帳號後,咱們就即將開始遠程倉庫的學習。

接下來在github上建立一個倉庫,而後按照github上的提示能夠把一個已有的本地倉庫與之關聯,而後將本地倉庫的內容推送到Github倉庫中

git remote add origin git@github.com:example-github-id/example-git-name.git

添加後,遠程庫的名字就是origin,這是Git默認的叫法,也能夠改爲別的,可是origin這個名字一看就知道是遠程庫。

下一步,就能夠把本地庫的全部內容推送到遠程庫上:

git push -u origin master

把本地庫的內容推送到遠程,用git push命令,其實是把當前分支master推送到遠程。

因爲遠程庫是空的,咱們第一次推送master分支時,加上了-u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在之後的推送或者拉取時就能夠簡化命令

從如今起,只要本地做了提交,就能夠經過命令:

git push origin master

講了先有本地庫,後有遠程庫的時候,如何關聯遠程庫。

如今,假設咱們從零開發,那麼最好的方式是先建立遠程庫,而後,從遠程庫克隆。那麼咱們如何從遠程庫中克隆到本地呢? 很簡單:

git clone git@github.com:example-github-id/example-git-name.git

相關文章
相關標籤/搜索