[k]廖雪峰Git教程-筆記

來源:互聯網
上載者:User

標籤:

--------------------------
廖雪峰Git教程
--------------------------

01:安裝Git
在Windows上安裝Git,官網下載,然後按預設選項安裝即可;
右鍵菜單->“Git Bash”->彈出一個命令視窗;
安裝完成後,還需要最後一步設定,在命令列輸入:
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"。

 

02:建立版本庫
版本庫又名倉庫,英文名repository,你可以簡單理解成一個目錄,這個目錄裡面的所有檔案都可以被Git管理起來,每個檔案的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤曆史,或者在將來某個時刻可以“還原”。
首先,選擇一個合適的地方,建立一個空目錄(倉庫):
$ mkdir learngit
$ cd learngit
$ pwd /c/learngit
第二步,通過git init命令把這個目錄變成Git可以管理的倉庫:$ git init
接下來把檔案添加到版本庫:
準備工作:編寫一個readme.txt檔案,一定要放到learngit目錄下(子目錄也行),因為這是一個Git倉庫;
把一個檔案放到Git倉庫只需要兩步:
第一步,用命令git add告訴Git,把檔案添加到倉庫:$ git add readme.txt;
第二步,用命令git commit告訴Git,把檔案提交到倉庫:$ git commit -m "wrote a readme file";
為什麼Git添加檔案需要add,commit一共兩步呢?因為commit可以一次提交很多檔案,所以你可以多次add不同的檔案,比如:
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."


03:時光機穿梭
我們已經成功地添加並提交了一個readme.txt檔案,我們可以繼續修改readme.txt檔案;
git status命令可以讓我們時刻掌握倉庫當前的狀態,上面的命令告訴我們,readme.txt被修改過了,但還沒有準備提交的修改;
git diff命令查看上次怎麼修改的readme.txt:$ git diff readme.txt ;
知道了對readme.txt作了什麼修改後,再把它提交到倉庫就放心多了,提交修改和提交新檔案是一樣的兩步:
第一步是git add:$ git add readme.txt;
在執行第二步git commit之前,我們再運行git status看看當前倉庫的狀態;
git status告訴我們,將要被提交的修改包括readme.txt,下一步,就可以放心地提交了;$ git commit -m "your comment";
提交後,我們再用git status命令看看倉庫的目前狀態。
------------------------------------------------------------------------------------------------
一:版本回退
------------------------------------------------------------------------------------------------
git log命令顯示從最近到最遠的提交日誌,查看曆史版本;
如果嫌輸出資訊太多,看得眼花繚亂的,可以試試加上--pretty=oneline參數:$ git log --pretty=oneline;
版本回退--首先,Git必須知道目前的版本是哪個版本,在Git中,用HEAD表示目前的版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一樣),上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成HEAD~100;
現在,我們要把目前的版本回退到上一個版本,就可以使用git reset命令:$ git reset --hard HEAD^;
要重返未來,用git reflog查看命令曆史,以便確定要回到未來的哪個版本,eg:$ git reset --hard 3628164。

------------------------------------------------------------------------------------------------
二:工作區和暫存區
------------------------------------------------------------------------------------------------
工作區(Working Directory):
就是你在電腦裡能看到的目錄,比如我的learngit檔案夾就是一個工作區;
版本庫(Repository)
工作區有一個隱藏目錄.git,這個不算工作區,而是Git的版本庫;
Git的版本庫裡存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區,還有Git為我們自動建立的第一個分支master,以及指向master的一個指標叫HEAD。
------------------------------------------------------------------------------------------------
三:管理修改
------------------------------------------------------------------------------------------------
Git管理的是修改,而不是檔案;
用git diff HEAD -- readme.txt命令可以查看工作區和版本庫裡面最新版本的區別;
每次修改,如果不add到暫存區,那就不會加入到commit中。
------------------------------------------------------------------------------------------------
四:撤銷修改
------------------------------------------------------------------------------------------------
情境1:當你改亂了工作區某個檔案的內容,想直接丟棄工作區的修改時,用命令git checkout -- fileName;
情境2:當你不但改亂了工作區某個檔案的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD fileName,就回到了情境1,第二步按情境1操作;
情境3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,參考版本回退一節,不過前提是沒有推送到遠程庫。
------------------------------------------------------------------------------------------------
五:刪除檔案
------------------------------------------------------------------------------------------------
一般情況下,你通常直接在檔案管理工具中把沒用的檔案刪了,或者用rm命令刪了:$ rm test.txt;
這個時候,Git知道你刪除了檔案,因此,工作區和版本庫就不一致了,git status命令會立刻告訴你哪些檔案被刪除了。
git checkout其實是用版本庫裡的版本替換工作區的版本,無論工作區是修改還是刪除,都可以“一鍵還原”。
eg: $ git checkout -- test.txt。


04:遠程倉庫
先註冊一個GitHub帳號。
第1步:建立SSH Key。在使用者主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個檔案,如果已經有了,可直接跳到下一步。如果沒有,開啟Shell(Windows下開啟Git Bash),建立SSH Key:$ ssh-keygen -t rsa -C "[email protected]"
你需要把郵件地址換成你自己的郵件地址,然後一路斷行符號,使用預設值即可,由於這個Key也不是用于軍事目的,所以也無需設定密碼。
如果一切順利的話,可以在使用者主目錄裡找到.ssh目錄,裡面有id_rsa和id_rsa.pub兩個檔案,這兩個就是SSH Key的秘鑰對,id_rsa是私密金鑰,不能泄露出去,id_rsa.pub是公開金鑰,可以放心地告訴任何人。
第2步:登陸GitHub,開啟“Account settings”,“SSH Keys”頁面:
然後,點“Add SSH Key”,填上任意Title,在Key文字框裡粘貼id_rsa.pub檔案的內容;
點“Add Key”,你就應該看到已經添加的Key。
------------------------------------------------------------------------------------------------
一:添加遠程庫
------------------------------------------------------------------------------------------------
首先,登陸GitHub,然後,建立一個新的倉庫;
目前,在GitHub上的這個learngit倉庫還是空的,GitHub告訴我們,可以從這個倉庫複製出新的倉庫,也可以把一個已有的本地倉庫與之關聯,然後,把本地倉庫的內容推送到GitHub倉庫。
我們根據GitHub的提示,在本地的learngit倉庫下運行命令:
$ git remote add origin [email protected]:do-or-donot/learngit.git
添加後,遠程庫的名字就是origin,這是Git預設的叫法,也可以改成別的,但是origin這個名字一看就知道是遠程庫。
下一步,就可以把本地庫的所有內容推送到遠程庫上:$ git push -u origin master;
把本地庫的內容推送到遠程,用git push命令,實際上是把當前分支master推送到遠程。
由於遠程庫是空的,我們第一次推送master分支時,加上了-u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠端master分支關聯起來,在以後的推送或者拉取時就可以簡化命令。
推送成功後,可以立刻在GitHub頁面中看到遠程庫的內容已經和本地一模一樣。
從現在起,只要本地作了提交,就可以通過命令:$ git push origin master;
把本地master分支的最新修改推送至GitHub,現在,你就擁有了真正的分布式版本庫!

------------------------------------------------------------------------------------------------
二:從遠程庫複製
------------------------------------------------------------------------------------------------
首先,登陸GitHub,建立一個新的倉庫;
現在,遠程庫已經準備好了,下一步是用命令git clone複製一個本地庫:
$ git clone [email protected]:do-or-donot/hello-world.git
$ cd hello-world
$ ls
README.md

 

[k]廖雪峰Git教程-筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.