Node+Express搭建個人博客(純后端)-git操作(五)

前幾天,剛剛看到一個女生朋友的動態(tài),說代碼沒了,還好男朋友幫忙找回來了,可能她還沒了解過比男朋友還靠譜的git吧。

git是常用的代碼管理工具,使用git之后,我們可以看到詳細的代碼修改記錄,代碼review時也能能夠很好的甩鍋了【手動捂臉】,并且也可以實現代碼的備份。接下來,了解下git的基本使用吧。

注: 以下相關命令都是在項目的根目錄下執(zhí)行的。

本地倉庫

創(chuàng)建版本庫

先進入到項目的根目錄,然后執(zhí)行以下命令,創(chuàng)建項目的版本庫。

git init

設置忽略的文件

項目中有些文件是不需要提交到遠程倉庫的,比如日志文件、臨時文件、包含敏感信息的文件等。對于Node程序來說,node_modules/*是所有依賴包所在目錄,里面包含文件過多,并且程序部署時會再次安裝,所以無需提交。對于package-lock.json,因為我將該文件上傳到github之后,或有潛在安全漏洞的提示,所以暫時也忽略了該文件。對于鎖版本,有一個知乎的回答另一個知乎的回答,可做參考。

項目中.gitignore文件的配置暫時如下:

# Logs
logs

node_modules/

app/public/apidoc/

package-lock.json

將文件加入版本庫

因為已經設置了項目要忽略的文件,所以我通常都是將項目中所有的文件加入到版本庫,當然,也可以按需添加。將所有文件加入到版本庫的命令如下:

git add .

將文件提交到版本庫

上一步將需要的文件已經加入到版本庫了,現在需要將上一步的文件提交到版本庫,執(zhí)行以下命令:

git commit -m '你的提交說明信息'

當然,commit規(guī)范還是要遵循的,不清楚的,可以看我的這篇文章。

遠程倉庫

添加遠程倉庫

以上步驟,只是在本地代碼倉庫的操作流程,我們在工作過程中肯定是會使用到遠程倉庫的,遠程倉庫既可以作為本地倉庫的備份,又可以進行團隊協(xié)作的開發(fā)工作,所以,添加遠程倉庫是好的選擇,執(zhí)行以下命令即可:

git remote add origin 你的遠程倉庫地址

github為例,遠程倉庫地址如圖所示:

image

注:千萬是你的遠程倉庫地址;千萬是你的遠程倉庫地址;千萬是你的遠程倉庫地址;

推送到遠程倉庫

將本地倉庫提交的內容推送到遠程倉庫,這樣,就可能保證本地和遠程的一致了,(當前分支為master分支)執(zhí)行以下命令:

git push origin master

分支管理

開發(fā)和工作中,我們需要一個分支保持穩(wěn)定的功能一般這個分支為master,當然,也可能存在不同版本的穩(wěn)定分支,視情況而定。項目新的特性和bug修復,不會在穩(wěn)定分支上進行修改和提交,所以我們需要建立新的開發(fā)分支,根據類型,我一般根據修改的類型建立不同類型的分支,比如新增需求的分支為feature/xxxx,bug修復的分支為bug/xxx,但是項目只有我自己開發(fā),所以就沒有那么嚴格的區(qū)分了,就只是有一個開發(fā)分支morehao_dev。

建立分支

創(chuàng)建新的開發(fā)分支并切換到新的分支(當前代碼分支為穩(wěn)定版本的master分支),命令如下:

git branch morehao_dev
git checkout morehao_dev

或者:

git checkout -b morehao_dev

推送分支

將新建的開發(fā)分支推送到遠程倉庫,命令如下:

git push origin morehao_dev:morehao_dev

在開發(fā)分支上開發(fā)完相應的需求或者修改完bug之后,需要提交并推送這些代碼,和在主分支上的操作一致,流程如下:

git add .
git commit -m '提交說明信息'
git push origin morehao_dev

分支合并

開發(fā)分支的代碼提交之后,如果相應修改經測試無誤,就需要將這些修改同步到穩(wěn)定分支,本項目的穩(wěn)定分支為master分支,這時就涉及到分支合并了,分支合并的命令為git merge,我們當前的代碼分支為morehao_dev,操作流程如下:

git checkout master
git pull origin master
git merge morehao_dev
git push origin master

pre-commit配置

現在,項目涉及到代碼提交了,前面提到過的代碼規(guī)范就會在現在大發(fā)神威了。

首先,安裝相應庫包,命令如下:

npm install --save-dev pre-commit
npm install -g standard

然后,在package.json中相應位置添加如下配置:

  "scripts": {
    "standard": "standard"
  },
  "pre-commit": [
    "standard"
  ],

配置完成之后,進行git commit操作時,如果代碼不符合規(guī)范,是不允許進行git commit操作的。

更新日志配置

每一次的commit就是一次代碼的更新,很好的記錄這些更新,能夠知道每次提交做了什么樣的修改或者新增了哪些特性,熟知各個版本的變化。

首先安裝相應的包,命令如下:

npm install -g conventional-changelog

然后,在package.json中相應位置添加如下配置:

"scripts": {
    "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0"
  }

最后,生成更新日志,執(zhí)行以下命令:

npm run changelog

執(zhí)行完生成更新日志的命令之后,在項目的根目錄下回生成一個名為CHANGELOG.md文件,記錄了更新的日志。

git常用命令

上面是比較基礎的git操作和一些相關配置,以下是我學習和工作中常用的git命令,不是所有的命令,但是完場日常工作,應該是足夠了。

創(chuàng)建秘鑰

進入.ssh目錄,如果沒有改目錄,創(chuàng)建該目錄

cd .ssh
或 
mkdir .ssh

配置公鑰

ssh-keygen -t rsa -C ''your email''

復制公鑰

cat id_rsa.pub

將公鑰粘貼到代碼托管工具的相應位置

初始化本地倉庫

創(chuàng)建一個express項目

express projectName

初始化本地倉庫

cd projectName
git init

刪除本地倉庫

rm -rf .git

配置遠程倉庫

添加遠程倉庫

git remote add origin url

刪除遠程倉庫

git remote remove origin

抓取遠端倉庫最新項目

git pull origin master

修改后push到遠端倉庫

git add .
<!--推薦按照commit日志基本規(guī)范編寫commit信息-->
git commit 
git push origin master

本地分支與遠程分支

列出所有本地分支

git branch

列出所有遠程分支

git branch -r

列出所有本地分支和遠程分支

git branch -a

建立本地分支

git branch dev

建立并切換分支

git checkout -b dev

推送本地分支到遠程分支

git push origin dev:dev

刪除本地分支

git branch -d dev

刪除遠程分支

git push origin --delete dev

查看本地分支與遠程分支的映射關系

git branch -vv

建立本地分支與遠程分支的映射關系

git branch --set-upstream-to origin/dev

撤銷本地分支與遠程分支的映射關系

git branch --unset-upstream

下載遠程分支

git clone url

指定下載遠程分支

git clone -b branchName url

暫存修改

查看修改狀態(tài)

git status

保存當前修改進度

git stash

查看保存的修改進度的列表

git stash list

恢復保存的修改進度并刪除保存的修改進度(默認最新)

git stash pop

恢復保存的修改進度但不刪除保存的修改進度(默認最新)

git stash apply

恢復指定的保存并刪除該保存

git stash pop stash@{2}

暫存刪除

git stash drop

版本回退

查看最近到最遠的提交日志

git log

查看最近到最遠的提交日志的簡要信息

git log --pretty=oneline
<!--在git log顯示的日志信息中,HEAD表示當前版本,也就是最新的版本,上個版本是HEAD^,上上個版本是HEAD^^,依次類推可以知道往上的100個版本為HEAD~100。-->

版本回退

git reset --hard HEAD^ 
或 
<!--ID,不必寫全,git會自動尋找相應的版本號-->
git reset --hard aqweq  #最后參數為commitId

git操作日志

git reflog

打標簽

創(chuàng)建tag(標簽)

git tag <tagName>

指定標簽名(-a)和標簽說明(-m)

git tag -a v1.4 -m 'my version 1.4'

查看所有標簽

git tag

將tag推送到遠程倉庫

git push origin <tagName>

將所有新增的本地標簽推送到遠程倉庫

git push origin --tags

刪除本地標簽

git tag -d <tagName>

刪除遠程倉庫的標簽

git push origin :refs/tags/<tagName>

小結

本文以本項目為例,完成了基本的git操作流程,并且羅列出了我常用的git命令,我對git的了解也不夠深入,也正在了解git工作流程,這個詞應該會經常出現在招聘信息中,如果有興趣,可以了解下,幫助絕對不止一點點。

下面附上項目的github地址:

項目地址

我的個人博客:

毛浩先生的個人博客

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Git常用語法 [TOC] Git簡介 描述 ? Git(讀音為/g?t/。)是一個開源的分布式版本控制系統(tǒng),...
    君惜丶閱讀 3,933評論 0 13
  • Git 基礎 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來。這樣一來,任何一處協(xié)同...
    __silhouette閱讀 16,198評論 5 147
  • Git 命令行學習筆記 Git 基礎 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來...
    sunnyghx閱讀 4,153評論 0 11
  • Git是目前最流行的版本管理系統(tǒng),也是最先進的分布式版本控制系統(tǒng)(distributed version cont...
    pro648閱讀 5,958評論 1 17
  • 2222222222222
    b7b80e663ba0閱讀 190評論 0 1

友情鏈接更多精彩內容