Git和Nodejs學習筆記

首先明確我們這次的任務

任務圖

這次的作業我先分為了四大部分

them.png

  • Git創建版本庫

First

  1. 運用cd進入版本庫
  1. mkdir創建一個版本庫
    pwd命令用于顯示當前目錄
    如下圖所示
圖一
  1. 通過 git init 把這個目錄變成git可以管理的倉庫
圖二

這時當前testgit目錄下會多了一個.git的目錄(該目錄下的文件不要貿然改動,因為該目錄是git用來跟蹤管理版本的)

Second

Git步驟二

版本回退

通過上面的描述,已經講述完了修改文件,現在繼續對readme.txt文件修改,增加一行33333333,繼續執行命令如下:

9.png

現在已經對readme.txt文件做了三次修改,若要查看一下歷史記錄,則可以使用命令:git log ,演示如下:

git log顯示從最近到最遠的顯示日志,即我們最近三次提交

若是認為圖一顯示的信息太多的話,可以用命令git log --pretty=oneline ,演示如圖

2

如果 把當前的版本回退到上一個版本可以使用如下2種命令,第一種是:git reset –hard HEAD^ 那么如果要回退到上上個版本只需把HEAD^ 改成 HEAD^^ 以此類推

回退

再來查看下 readme.txt內容如下:通過命令cat readme.txt查看,并且可以繼續使用git log 來查看下歷史記錄信息

13.png

增加333333 內容沒有看到了,但是現在想回退到最新的版本,

  • 首先先通過git reset -hard獲取版本號
  • 然后用git reset –hard 6fcfc89來恢復
    具體如下圖:
000

  • 接下來,我們來講解一下Git撤銷修改和刪除文件操作

Git 撤銷、修改.png

現在來講解Nodejs

首先記錄我的第一個Hello World程序

nodejs.PNG
  • 對于Nodejs,Node.js是建立在谷歌Chrome的JavaScript引擎(V8引擎)的Web應用程序框架Node.js快速入門
    Node.js = 運行環境+ JavaScript庫
  1. node.js和javascript區別還是挺大的,1個是平臺,1個是編程語言;
  2. javascript是客戶端編程語言,需要瀏覽器的javascript解釋器進行解釋執行;
  3. node.js是一個基于Chrome JavaScript運行時建立的平臺,它是對Google V8引擎進行了封裝的運行環境;
  4. 簡單的說node.js就是把瀏覽器的解釋器封裝起來作為服務器運行平臺,用類似javascript的結構語法進行編程,在node.js上運行。

TDD測試代碼網址

TDD代碼

describe("Word Frequency", function () {
    it("returns empty string given empty string", function () {
        var result = main('');
        expect(result).toEqual('');

    });

    it("returns string given one word", function () {
        var result = main('he');
        expect(result).toEqual('he 1');

    });

    it("returns string given two different word", function () {

        var result = main('he is');
        expect(result).toEqual('he 1\r\nis 1');

    });

    it("returns string given two duplicated word", function () {
        var result = main('he is he');
        expect(result).toEqual('he 2\r\nis 1');

    });

    it("returns string given two duplicated words need to be sorted", function () {
        var result = main('he is is');
        expect(result).toEqual('is 2\r\nhe 1');

    });

    it("returns string given two duplicated words splited by multiple spaces", function () {
        var result = main('he     is');
        expect(result).toEqual('he 1\r\nis 1');

    });
    it("returns string given long string splited by multiple spaces", function () {
        var result = main('it was the age of wisdom it was the age of foolishness it is');
        expect(result).toEqual('it 3\r\nwas 2\r\nthe 2\r\nage 2\r\nof 2\r\nwisdom 1\r\nfoolishness 1\r\nis 1');
        document.write("result:"+"<br>"+result);
    });

var formatWordAndCount = function (word, count) {
    return word +
        ' ' +
        count;
};
var group = function (wordArray) { 
    return wordArray.reduce((array,word)=>{
            let entry = array.find((e)=> e.word === word);//找對象
                if(entry){
                    entry.count++;
                }else{
                    array.push({word:word , count:1});
                }
                return array;
        },[]);
};
var split = function (words) {
    return words.split(/\s+/);
};
var sort = function (groupWords) {
    groupWords.sort((x, y) => y.count - x.count);
};

function format(groupWords) {
    return groupWords.map((e) = > formatWordAndCount(e.word, e.count)).join('\r\n');
}
function main(words){
    if(words !== ''){
        let wordArray=split(words);
        let groupWords = group(wordArray);
        sort(groupWords);
        return format(groupWords);
    }
    return ''
}

這是后來修改后的第二次提交結果

Paste_Image.png

這是第一次的TDD提交結果


  • Git提交結果


    Git.png

本次作業的心得體會

  • 總的來說是各種困難擺在面前吧,于我而言,Git和Nodejs都是兩個新事物,我需要一步一步地去進行學習,從安裝環境到用法的熟悉,都花了不少時間,然后寫代碼的時候剛開始是完全寫不了,有一種“題目認識你,可是你卻不認識它一樣”,隨后我請教了同學,并且慢慢地進行自我摸索,總算是在磕磕絆絆之后把代碼給死磕了出來,無論做什么事過程都是艱難的可是到真正完成之后就會有一種成就感。
  • 其次就是這次的任務我認為對我的自主學習也有很多提升,也發現了很多學習知識的新大陸
    然后給大家推薦一個技術大牛發表文章的網站community
    不錯的App集錦app
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容