管理全部文件和修改歷史html
方便回溯linux
本地我的使用git
缺點:(很明顯)數據庫
全部的版本數據都保存在服務器上緩存
協同開發者從服務器上同步更新或上傳本身的修改安全
缺點:bash
1.本地只有同步版本,不鏈接服務器看不到歷史版本服務器
2.服務器崩掉的風險(雖然能夠按期備份)ssh
表明產品:SVN分佈式
全部版本信息所有同步到本地的每一個用戶
每一個用戶保存全部版本數據
不會因服務器損壞而不能工做
缺點:每一個人都有所有代碼——安全隱患(從刪庫到跑路)
表明產品:Git
爲Linux內核開源項目服務
一開始Bitkeeper商業公司提供分佈式控制系統
後面懂的都懂(膜拜大佬)
1.開始菜單
2.任意位置文件夾右鍵
Git Bash:Unix與Linux風格的命令行,使用最多,推薦最多
Git CMD:Windows風格的命令行
Git GUI:圖形界面的Git,不建議初學者使用,儘可能先熟悉經常使用命令
1)cd_ 改變目錄 2)cd_.. 回退到上一個目錄,直接cd進入默認目錄 3)pwd 顯示當前所在的目錄路徑 4)ls或ll 列出當前目錄中的全部文件 ll列出的內容更爲詳細 5) touch_ 新建一個文件 如touch index.js會在當前目錄下新建一個index.js 6)rm 刪除一個文件 rm index.js就會把index.js文件刪除。 7)rm—r 刪除一個文件夾 rm—r src即刪除src目錄 【rm-rf / 刪除根目錄(切勿在Linux中嘗試)】 8)mkdir 新建一個文件夾 9) mv 移動文件 mv index.html src index.html是咱們要移動的文件, src是目標文件夾 10)reset 從新初始化終端/清屏(相似clear) 11)clear 清屏(即Dos裏的cls) 12)history 查看命令歷史 13)help 幫助 14)exit 退出 15)# 表示註釋
查看配置git config -l
#查看系統config git config --system --list #查看當前用戶(global)配置 git config --global --list
全部的配置文件都保存在本地
1 )
Git\etc\gitconfig : Git安裝目錄下的gitconfig --system系統級
C:\Users\Administrator\ .gitconfig
只適用於當前登陸用戶的配置 --global 全局
這裏能夠直接編輯配文件,經過命令設後會響應到這裏
配置代碼
git config --global user.name "用戶名" #名稱 git config --global user.email "@.com" #郵箱
必需要作
核心
Git本地有三個工做區域
1.工做目錄( Working Directory)
2.暫存區(Stage/Index)
3.資源庫(Repository或Git Director)
若是在加上遠程的git倉庫( Remote Directory)就能夠分爲四個工做區域
文件在這四個區域之間的轉換關係以下
工做區,就是你平時存放項目代碼的地方
暫存區,用於臨時存放你的改動
事實上它只是一個文件,保存即將提交到文件列表信息
倉庫區(或本地倉庫),就是安全存放數據的位置,這裏面有你提交到全部版本的數據
其中HEAD指向最新放入倉庫的版本
遠程倉庫,託管代碼的服務器,能夠簡單的認爲是你項目組中的一臺電腦用於遠程數據交換
git通常工做流程
1.在工做目錄中添加、修改文件
2.將須要進行版本管理的文件放入暫存區域
3將暫存區域的文件提交到git倉庫
即git管理的文件三種狀態:
已修改( modified)
已暫存( staged)
已提交(committed)
工做目錄( WorkSpace)即Git幫助你管理的文件夾
能夠是你項目的目錄,也能夠是一個空目錄(建議不要有中文)
平常以下
建立本地倉庫的方法有兩種:
一種是建立全新的倉庫,另外一種是克隆遠程倉庫
#在當前目錄新建一個Git代碼庫 git init
僅僅在項目目錄多出了一個git
關於版本等的全部信息都在這個目錄
因爲是將遠程服務器上的倉庫徹底鏡像一份至本地
#克隆一個項目和它的整個代碼歷史(版本信息) git clone [url]
版本控制就是對文件的版本控制
要對文件進行操做,首先要知道文件狀態
否則可能會提交了如今還不想提交的文件,或者要提交的文件沒提交上
Untracked:
未跟蹤此文件在文件夾中
但並無加入到git庫,不參與版本控制
經過git add
狀態變爲Staged
Unmodify:
文件已經入庫,未修改
即版本庫中的文件快照內容與文件夾中徹底一致
這種類型的文件有兩種去處
若是它被修改而變爲Modified
若是使用git rm移出版本庫,則成爲Untracked
文件
Modified:
文件已修改,僅僅是修改,並無進行其餘的操做
這個文件也有兩個去處經過
git add
可進入暫存staged狀態
使用 git checkout
則丟棄修改過返回到 unmodify狀態
這個 git checkout
即從庫中取出文件,覆蓋當前修改
Staged:
git commit
則將修改同步到庫中這時庫中的文件和本地文件又變爲一致
git reset HEAD filename
取消暫存,文件狀態爲Modifiedgit add #添加全部文件到緩存區 git commit -m "消息內容" #添加緩衝區內容到本地倉庫
查看文件狀態
#查看指定文件狀態 git status [filename] #查看全部文件狀態 git status
不須要歸入版本控制的文件
如數據庫文件、臨時文件、設計文件
在主目錄下創建". gitignore"文件,此文件有以下規則
忽略文件中的空行或以井號(#)開始的行將會被忽略
可使用 ILinux通配符
例如:
星號(*)表明任意多個字符
問號(?)表明一個字符
方括號([abc])表明可選字符範圍
大括號({ string1, string2…})表明可選的字符串等
若是名稱的最前面有一個感嘆號(!),表示例外規則,將不被忽略
若是名稱的最前面是一個路徑分隔符(/),表示要忽略的文件在此目錄下,而子目錄中的文件不忽略
若是名稱的最後面是一個路徑分隔符(/),表示要忽略的是此目錄下該名稱的子目錄,而非文件(默認文件或目錄都忽略)
*.txt #忽略全部.txt結尾的文件 !lib.txt #但1ib.txt除外 /temp #僅忽略項目根目錄下的TODO文件,不包括其它目錄temp build/ #忽略bui1d/目錄下的全部文件 doc/*.txt #會忽略doc/notes.txt但不包括doc/ server/arch.txt
IDEA參考設置
#生成公鑰 ssh-keygen -t rsa
1.新建項目,綁定git
2.修改文件,使用IDEA操做git
3.提交測試
#查看分支 git branch #查看遠程分支 git branch -r #新建分支(但仍然在當前分支) git branch [branch-name] #新建分支並切換到改分支 git branch -b [branch] #合併指定分支到當前分支 git merge -b [branch] #刪除分支 git branch -d [branch-name] #刪除遠程分支 git push origin --delete [branch-name] git branch -dr [remote/branch]
多個分支並行進行(容許多版本)
若是衝突,協商修改便可
master主分支應很是穩定,用來發布新版本,通常狀況下不容許在上面工做
工做通常在新建的dev分支上工做,代碼穩定後合併到主分支master
最後: 筆記中大多數內容源於狂神的免費課程https://space.bilibili.com/95256449 ,在此表達由衷感謝。