文章目錄
- 一.Git是什麼
- 二.SVN與Git的最主要的區別?
- 三.安裝Git
- 四.操作文件,提交到git服務器
- 1.gid add 文件名 提交到暫存區
- 2.git commit -m "提交的備註"
- 3.查看commit狀態 git status
- 4.查看修改內容,與上版本文件對比 git diff
- 5.恢復到工作區 git checkout 文件名(單文件)
- 6.查看日誌和版本git log git reflog
- 7.回退版本(恢復到指定任意版本) git reset --hard HEAD^(多文件)
- 8.刪除 rm 文件名
- 9.創建密鑰(一臺電腦配置一次) ssh-keygen -t rsa -C "郵箱賬號"
- 10.連接遠程庫 git remote add origin 項目地址
- 11.將本地的庫推送到master分支上(推送到服務器) git push -u origin master
- 12. git push 推送到遠程倉庫
- 五.拉取遠程倉庫數據
- 六.分支操作
- 七.設置git忽略文件
一.Git是什麼
Git是目前世界上最先進的分佈式版本控制系統
二.SVN與Git的最主要的區別?
SVN爲集中式版本控制系統,版本庫是集中存放在中央服務器的,
單獨搭建SVN服務器,不能離線工作
操作簡單代碼保密性較強
Git爲分佈式版本控制系統,根本沒有"中央服務器",每個人的電腦都是一個完整的版本庫
適合分佈式開發,強調個體
公共服務器壓力和數據量都不會太大
速度快,靈活
可以離線工作
操作複雜,代碼保密性差
GitHub,免費的遠程倉庫,如果是個人的開源項目,放到GitHub上是完全沒有問題的。GitHub還是一個開源協作社區,通過GitHub,既可以讓別人參與你的開源項目,也可以參與別人的開源項目。 SVN的存儲需要依賴一個服務器,而git所有的東西是放在線上的。節約成本,省時省力。
三.安裝Git
在這個網站去下載 https://desktop.github.com/ Git最新版,windows和linux系統都有,我這邊給大家是windows環境上演示
下載之後,安裝,傻瓜式操作,一直下一步 (next),安裝成功之後咱們電腦的程序菜單會出現3個欄目如下圖
<1>git bash 支持linux命令的控制檯(常用)
<2>git CMD 支持windows命令的控制檯
<3>git GUI git軟件圖形化界面(不建議用)
這裏呢,我要給大家操作的是linux系統的,主要以Git Bash爲主,使用linux命令.打開Git bash會出現,如圖:
如果沒有Git賬號的可以自行去Github官網去註冊賬號,注意用戶名和常用郵箱號,然後我們打開Git bash後還要做些設置.
git config --global user.name “你的暱稱”
git config --global user.email “你登陸git的郵箱”
然後可以通過 git config --list 查看配置列表
以下是git命令行中常用的操作命令:
cd E:進入相應的磁盤
cd /e/test/js 進入文件夾
cd .. 返回上一層目錄
mkdir 創建目錄
pwd 顯示當前工作目錄的全路徑
touch test.js 新建某某文件
vi test.js 編輯xx文件, 按i切換到編輯模式,按esc切換到命令模式,輸入冒號:wq 回車,保存並返回
rm test.js 刪除文件
ls 查看當前目錄的所有文件
clear 清屏
那上述的準備工作已經做好了,我們來正式的使用git,最重要的步驟來了,我們先通過cd /e/test/js (你的文件路徑)進入地址然後使用git init命令初始化當前項目,此時你的目錄下會多出一個.git的隱藏文件(設置隱藏文件可見),存儲着當前項目所有的版本信息.特別注意,不要胡亂的動這個.git的文件夾,不要管它.
我們在當前目錄下,新建一個readme.md的文件,裏面隨便寫點內容便於我們後面操作.
四.操作文件,提交到git服務器
你的本地倉庫由 git 維護的三棵“樹”組成:
第一個是你的 工作目錄,它持有實際文件;
第二個是 暫存區(Index),臨時保存你的改動;
最後是 HEAD,指向你最近一次提交後的結果。
現在來開始使用git命令操作版本控制工具上面我們初始化了當前項目,有了.git文件,也測試新建了一個readme.md的文件,我們現在通過命令操作
1.gid add 文件名 提交到暫存區
git add -u 提交所有被修改(modified)和被刪除(delete)文件,不包括新建文件
git add . 提交所有新文件和被修改的文件,不包括被刪除的文件
git add -A 提交所有變化
git add * 提交所有變化(忽略.gitignore)
注意:在Git工作區的根目錄下創建一個特殊的.gitignore
文件,然後把要忽略的文件名填進去,Git就會自動忽略這些文件。
2.git commit -m “提交的備註”
把剛纔的提交到暫存區的文件,提交到本地倉庫中
3.查看commit狀態 git status
使用git status 查看當前工作目錄和暫存區的狀態
當出現 nothing to commit, working tree clean 時,說明咱們剛纔的提交是ok的.
我們再修改下readme.md中的內容,並重新使用git status
會出現一些變化,git告訴我們,我們本地進行了一些修改,但是這些修改並沒有被提交
4.查看修改內容,與上版本文件對比 git diff
可以查看工作區和暫存區代碼的區別
使用git diff命令,會出現更改信息,會把剛纔咱們修改的內容明顯標出來
那我們還跟上面操作一樣,先add ,然後在commit
5.恢復到工作區 git checkout 文件名(單文件)
比如我們再修改了readme.md的文件,寫了很多不想要了,然後又想恢復到我們暫存區的那個一個版本文件,可以使用 git checkout readme.md,立馬恢復到上次提交到暫存區的文件
也可以 git checkout [版本號] 恢復的文件
git checkout 56sf6ss readme.md(注意,下面可以獲取前7位的版本號)
6.查看日誌和版本git log git reflog
可以查看版本日誌,查看之前之前提交過的所有的歷史版本
git log 查看完整的版本號(hash值)
git reflog 查看前7位的版本號(hash值)
7.回退版本(恢復到指定任意版本) git reset --hard HEAD^(多文件)
git reset --hard HEAD^ 回退到上個版本
git reset --hard HEAD^^ 回退兩個版本
git reset --hard 56sf6ss 回退到指定版本
8.刪除 rm 文件名
先rm readme.md (本地刪除)
通過git status 查看狀態 會說本地工作區和暫存區的區別,刪除了文件
此時如果我們繼續提交被刪除的文件可以執行下面操作
git add -A 再git commit -m “刪除了剛纔的readme.md文件”
那現在版本庫上的也沒有了,你可以通過git checkout readme.md試一下,報錯,會說找不到文件路徑
如果不想提交,放棄剛纔刪除的,可以通過git reset --hard 版本號 來恢復文件
上面8項操作,解決了我們本地工作區到暫存區的增加,刪除,修改,退回,恢復等操作.
git init -> 創建版本庫
git add 文件名 ->添加到暫存區
git commit -m “提交註釋” ->提交到本地倉庫
9.創建密鑰(一臺電腦配置一次) ssh-keygen -t rsa -C “郵箱賬號”
a.首先檢查電腦是否曾經生成過密鑰
cd ~/.ssh 回車
ls 回車
如果打開該文件加爲空,則表示沒有生成過密鑰進入b步驟 (~表示根目錄)
b.生成密鑰
ssh-keygen -t rsa -C “你註冊git使用的郵箱”
命令要求輸入密碼,不用輸,三個回車即可.執行成功之後,主目錄.ssh目錄下會生成 兩個文件:id_rsa 私鑰文件,id_rsa.pub 公鑰文件
如果找不到兩個文件,可以這樣找到
windows電腦通過 C盤 => 用戶 => 你名字的用戶 => .ssh隱藏文件夾
c.去Github配置密鑰
登陸github帳戶點擊頭像,然後 Settings -> 左欄點擊 SSH and GPG keys
-> 點擊 New SSH key在遠程倉庫gitlab上添加title和key,和本地的一致。 title可以自己取一個容易區分的名字,key爲id_rsa.pub中的內容(全部復 制,可用cat id_rsa.pub命令打開)
配置了ssh祕鑰,使用遠程倉庫的 ssh 地址提交
10.連接遠程庫 git remote add origin 項目地址
git remote add origin https://github.com/lechar0327/GitTest.git
11.將本地的庫推送到master分支上(推送到服務器) git push -u origin master
git push -u -f origin master
提交到遠程倉庫,這個命令中的 -f是強制推送,因爲遠程倉庫只有初始化文件,所 以強制推送上去就行了,不加-f 會報當前分支沒有遠程分支,強制推送可以覆蓋master, 這樣就完成了第一次提交的步驟.
【注】windows電腦會要求輸入賬號和密碼(輸入github賬戶的賬號密碼)
git remote -v 查看遠程倉庫地址
然後去服務器上查看是否推送成功.
那以上11個步驟,就完成了我們從本地初始化,到添加到暫存區,然後提交,最後連接遠程庫,並且推送成功的所有操作了,這上面很多都是隻需要配置一次的,當第二次開始的時候,就不需要那麼多步驟了.只需要
<1> 工作區 => 暫存區
git add *
git commit -m “”
<2> 檢查暫存區的狀態
git status
<3> 將暫存區的數據推送到遠程倉庫去
git push
12. git push 推送到遠程倉庫
將暫存區的文件全部推送到遠程倉庫
git push (提交master分支 到遠程倉庫)
git push origin 分支名 (提交其他分支 到遠程倉庫)
注意:如果我們在執行上述 第10步操作時,報錯了,提示fatal: remote origin already exists.這個錯誤信息,我們解決辦法如下:
1、先輸入$ git remote rm origin
2、再輸入$ git remote add origin [email protected]:djqiang/gitdemo.git 就不會 報錯了!
3、如果輸入$ git remote rm origin 還是報錯的話,error: Could not remove config section ‘remote.origin’. 我們需要修改gitconfig文件的內容
4、找到你的github的安裝路徑,我的是 C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca4ec8\etc
5、找到一個名爲gitconfig的文件,打開它把裏面的[remote “origin”]那一行刪掉就 好了!
五.拉取遠程倉庫數據
1.從服務器克隆數據 git clone
git clone https://github.com/lechar0327/GitTest.git
獲取遠程倉庫的更新數據
git fetch:相當於是從遠程獲取最新到本地,不會自動merge
git pull:相當於是從遠程獲取最新版本並merge到本地
git pull origin 分支名 更新某個遠程分支到本地
六.分支操作
1.查看分支 git branch
2.創建分支 git branch 分支名
3.切換分支 git checkout 分支名
4.創建+切換分支 git checkout -b 分支名(合併2和3的操作)
5.提交分支上的代碼 git add . git commit -m “提交註釋”
6.合併分支(需要切換到主分支進行合併)
7.合併完以後就push ,先pull一次在git push ,也就是先更新在提交
8.刪除分支的命令 git breach -d 分支名字
七.設置git忽略文件
1.創建文件:.gitignore
2.忽略文件列表
以斜槓“/”開頭表示目錄;
以星號“*”通配多個字符;
以問號“?”通配單個字符
以方括號“[]”包含單個字符的匹配列表;
以歎號“!”表示不忽略(跟蹤)匹配到的文件或目錄;
.DS_Store
node_modules/
/dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
#Editor directories and files
.idea
.vscode
.suo
* .ntvs
*.njsproj
上面是操作Git的基本流程,用於工作之中也夠用了,後面如果有補充的我會做補充,希望大家多多關注!