版本庫又名倉庫,英文名repository,你能夠簡單理解成一個目錄,這個目錄裏面的全部文件均可以被Git管理起來,每一個文件的修改、刪除,Git都能跟蹤,以便任什麼時候刻均可以追蹤歷史,或者在未來某個時刻能夠「還原」。html
Css3編碼技巧前端
課外知識: mkdir 建立目錄; pwd 顯示絕對路徑; cat 文件名 查看文件內容 注:全部的版本控制系統,其實只能跟蹤文本文件的改動,好比TXT文件,網頁,全部的程序代碼等等,Git也不例外。而圖片、視頻這些二進制文件,雖然也能由版本控制系統管理,但無法跟蹤文件的變化,只能把二進制文件每次改動串起來,也就是隻知道圖片從100KB改爲了120KB,但到底改了啥,版本控制系統不知道,也無法知道。vue
Microsoft的Word格式是二進制格式,所以,版本控制系統是無法跟蹤Word文件的改動的,若是要真要使用版本控制系統,就要以純文本方式編寫文件。 千萬不要使用Windows自帶的記事本編輯任何文本文件,緣由是Microsoft開發記事本的團隊,在每一個文件開頭添加了0xefbbbf(十六進制)的字符,你會遇到不少難以想象的問題.react
# 1.初始化倉庫,.git目錄默認隱藏,能夠經過命令ls -ah顯示
git init
# 2.把文件添加到版本庫,能夠一次添加多個文件,git add . 表明把全部文件所有提交
git add 文件名 文件名
# 3.把文件提交到當前分支
git commit -m '本次提交的說明'
# 4.把項目提交到(遠程)倉儲
git push
複製代碼
# 1.查看遠程分支
git branch -a
# 2.查看本地分支
git branch
# 3.建立並切換分支 (加-b表示建立並切換)
git checkout -b 分支名
# 4.切換回分支
git checkout 分支名
# 5.從主分支裏建立新分支
git checkout master -b 新分支名
# 6.合併某分支到當前分支
git merge 分支名
# 7.刪除分支
git branch -d 分支名
git branch -D 分支名 (強行刪除分支)
複製代碼
# 情景一 提交或拉取時衝突
git stash
git pull
git stash pop
# 情景二 若是你想徹底地覆蓋本地的代碼,只保留服務器端代碼,則直接回退到上一個版本,再進行pull
git reset --hard HEAD^
git pull origin master
# 注:origin master表示git的主分支
# 情景三 分支合併時衝突(當咱們git merge 分支名 時)
1.git status (查看發生衝突的文)
2.而後手動合併衝突
3.git add . (添加更改後的文件)
4.git commit -m 'xj' (提交)
複製代碼
# 1.進入.ssh目錄
cd ~/.ssh
# 2.查看id_rsa.pub文件
cat id_rsa.pub
複製代碼
git clone 遠程源地址
複製代碼
# 1.查看命令歷史
git reflog
# 2.根據commitID撤銷某個操做
git reset --hard 某個commitId
複製代碼
git branch --set-upstream-to=origin/遠程分支的名字 本地分支名
複製代碼
# 刪除版本庫中的文件
git rm filename
# 恢復工做區中誤刪的文件
git checkout -- filename
# 注:git checkout實際上是用版本庫裏的版本替換工做區的版本,不管工做區是修改仍是刪除,均可以「一鍵還原」。
複製代碼
# 1.建立sshkey密鑰
ssh-keygen -t rsa -C "youremail@example.com"
# 2.在遠程倉庫中添加ssh公鑰
# 3.關聯遠程庫
git remote add origin git@server-name:path/repo-name.git
# 4.第一次推送master分支的全部內容,此後只須要使用git push origin master便可推送最新修改
git push -u origin master
複製代碼
# 1.查看遠程倉儲的詳細信息
git remote -v
# 2.推送本地分支到遠程倉庫,
#1.若是發生衝突,用git pull試圖合併,若是發生衝突則解決衝突,再進行推送
#2.若是git pull後提示no tracking information(沒有追蹤信息),則進行第四項,創建關聯,以後pull,有衝突再合併
git push origin 本地分支名
# 3.在本地建立和遠程分支對應的分支
git checkout -b 本地分支 origin/遠程分支名
# 4.創建本地分支和遠程分支的關聯
git branch --set-upstream 本地分支名 origin/遠程分支名
複製代碼
1.master分支應該是很是穩定的,也就是僅用來發布新版本,平時不能在上面幹活;
2.幹活都在dev分支上,也就是說,dev分支是不穩定的,到某個時候,好比1.0版本發佈時,再把dev分支合併到master上,在master分支發佈1.0版本;
3.每一個人都有本身的分支,時不時地往dev分支上合併就能夠了
複製代碼
補充jquery
# git fetch和git pull的區別
與git pull相比git fetch至關因而從遠程獲取最新版本到本地,但不會自動merge。若是須要有選擇的合併git fetch是更好的選擇。效果相同時git pull將更爲快捷。
# 查看倉庫當前的狀態
git status
// 查看提交日誌
git log
# 回退版本,在git中用HEAD表示當前版本,HEAD^表示上一個版本,HEAD^^表示上上個版本
git reset --hard HEAD^ 或
git reset --hard 3628164 (數字表明log裏commit後面的id,只須要填前幾位就能夠)
# 窗口關閉後回退版本(git reflog用來記錄你的每一次命令)
git reflog
# 工做區和暫存區
工做區就是你創建的能看見的目錄,.git即爲git的版本庫,Git的版本庫裏存了不少東西,其中最重要的就是稱爲stage(或者叫index)的暫存區,Git爲咱們自動建立的第一個分支master,以及指向master的一個指針叫HEAD。
用git add把文件添加進去,實際上就是把文件修改添加到暫存區;
用git commit提交更改,實際上就是把暫存區的全部內容提交到當前分支
# 撤銷修改
1.直接丟棄工做區的修改,用命令git checkout -- file
2.修改添加到了暫存區,想丟棄修改,分兩步,第一步用命令git reset HEAD file,就回到了場景1,第二步按場景1操做
複製代碼
最後,歡迎加入前端技術羣,一塊兒探討前端的魅力 webpack