一.關(guān)于ssh
Secure Shell(SSH) 是一個允許兩臺電腦之間通過安全的連接進(jìn)行數(shù)據(jù)交換的網(wǎng)絡(luò)協(xié)議。加密保證了數(shù)據(jù)的保密性和完整性。SSH采用公鑰加密技術(shù)來驗證遠(yuǎn)程主機(jī),以及(必要時)允許遠(yuǎn)程主機(jī)驗證用戶。
使用SSH key的步驟:
在客戶端生成SSH key(密鑰對:公鑰和私鑰)
在服務(wù)端的配置文件中加入你的公鑰。(比如我們需要再GitHub中粘貼你的公鑰)
1.檢測本地有沒有配置過ssh
Linux/Mac 系統(tǒng) 在~/.ssh下,win系統(tǒng)在/c/Documents and Settings/username/.ssh下,都是隱藏文件,相信你們有辦法查看的。
或者
cd ?~./ssh看能不能進(jìn)入這個目錄
2.生成本機(jī)ssh
隨便找個文件夾,git bash here
ssh-keygen -t rsa -C "your_email@example.com" -b 4096
后面的這個-b 4096可以不用寫,應(yīng)該是出于安全性的設(shè)置
輸入命令后會提示要不要設(shè)置口令,暫時一路回車不配置那么多。
3.在github中加入終端生成的公鑰
創(chuàng)建完成之后我們發(fā)現(xiàn)在.ssh文件中多了兩個文件,這兩個文件就是ssh的登錄密鑰,其中id_rsa表示本地的私有密鑰,而id_rsa.pub表示公有密鑰。
這里暫時理解,公鑰相當(dāng)于一把鎖,而私鑰就是開鎖的鑰匙。一般來說別人可以用你的公鑰來加密,這樣就只有你自己能解密看到了。所以公鑰可以向外公開,私鑰要自己保護(hù)好。
4.驗證是否添加成功
SSH key 添加成功之后,輸入ssh -T git@github.com進(jìn)行測試,如果出現(xiàn)hi.......說明成功。
二.git常用命令
git config --list ?//查看所有配置項,--list要連著寫。
git config --global ?user.name //配置姓名
git config --global user.email //配置郵箱
git add 文件名 ? ? ?// 添加文件到暫存區(qū)
git add . ? ? ?// ?添加所有文件的到暫存區(qū)
git commit -m '注釋' // 把暫存區(qū)內(nèi)容提交到歷史區(qū)
git commit -am // 把已經(jīng)跟蹤過的文件提交到暫存區(qū)和歷史區(qū),有新文件的時候不用
git status //查看當(dāng)前狀態(tài)
git diff // 查看工作區(qū)和暫存區(qū)的區(qū)別
git diff --cached ? ? ? //查看暫存區(qū)和歷史區(qū)的區(qū)別
git diff HEAD ? ? ? //查看工作區(qū)與上一個版本的不同(更改文件后不提交到歷史區(qū)可用該命令查看)
git rm --cached 文件名// 工作區(qū)修改后已經(jīng)提交到暫區(qū),把提交的刪除
git checkout 文件名 ?//后悔工作區(qū)的修改,還沒有提交到暫存區(qū),取回暫存區(qū)的內(nèi)容覆蓋
git reset HEAD index.html //后悔暫存區(qū)的修改,取回歷史區(qū)內(nèi)容
git log ?//查看本次版本快照之前的日志
git reflog //查看所有提交
git reset --hard head^ //回退最近版本
git reset --hard 版本號 //回退到對應(yīng)版本號的版本
git branch //查看本地分支
git branch branch-name// 創(chuàng)建分支
git checkout -b branch-name// 創(chuàng)建并切換到分支
git branch -d branch-name //刪除分支
git merge branch-name//快速合并分支,移動指針
git merge --no-ff -m '注釋' branch-name ?//詳細(xì)合并分支
git merge --abort //取消分支合并
遠(yuǎn)程同步
沒有初始化
git remote add origin git@github.com:zhufengnodejs/gitdemo.git ?//增加遠(yuǎn)程連接
git push -u origin master ?//提交master并把本地master和遠(yuǎn)程master連接
已經(jīng)初始化
git push origin master // 提交master分支
git push origin branch-name //提交其他分支
多人協(xié)作
1.
git branch -a ?
git checkout -b dev origin/dev
git add . ?git commit -m ''
git push origin dev
push失敗
git pull 解決沖突 再 git add 1~~~~~~~~~~~
2.
git checkout -b dev
git branch --set-upstream dev origin/dev ? ?//指定本地dev分支與遠(yuǎn)程origin/dev分支的連接
git pull 解決沖突后 git add. git commit -m ''
git rm 文件名 ?//從版本庫中刪除
隱藏工作現(xiàn)場
1.
git stash
git stash list
git stash apply stash-id
gti stash drop stash-id
2.
git stash?
git stash pop?
gti stash list
刪除文件 git rm index.html