三期主要了分享了Linux實戰方面的經驗,最后老徐給我們布置了一道實操題。拿到這個題的時候,我連Git是什么都不知道,但這不是關鍵,本次課程的重點便是熟練Linux的命令。
我咨詢了度娘,得知Git是用來進行分布式版本控制的(能記錄每次文件的改動),能在許多協議下使用,所以Git URL可能以ssh://, http(s)://, git://,或是只是以一個用戶名(git 會認為這是一個ssh 地址)為前輟.。
git://協議較為快速和有效,但是有時必須使用http協議,比如公司的防火墻阻止了非http訪問請求。
Github: 一個網站,提供給用戶空間創建git倉儲,保存用戶的一些數據文檔或者代碼等,可以托管各種git庫。
如老徐提供的倉庫
1、網頁上登錄:https://github.com/istester
然而網頁上并沒有看到倉庫,所以clone時會報錯
git clone https://github.com/istester/ido.git
(git clone git://github.com/istester/ido.git)
嘗試了兩種方法操作,最后有常見問題處理方法
一、自己創建倉庫
Github是一個git項目的 托管網站,要將內容放到上面,必須先在網站上注冊賬號
1、注冊個人賬號:個人登錄 github 所使用的
2、注冊organization賬號:主要適用于商業用途和大型開源項目,是不能登錄的
3、Invite members(邀請團隊成員):可以先忽略,后續再邀請,點完成
項目建好后,組內的成員可以通過輸入網址可以進行訪問:https://github.com/carinazyp
創建項目
1、Github網頁上創建庫(carina):點擊“Create Repository” ,就完成了一個項目在github上的創建。
2、使用git在本地創建一個相同的項目
-
先查看一下未設置前的配置:cat .git/config (或 git config --list)
更改前配置 -
添加user和email信息后,再次檢查配置,此時已顯示用戶信息
只更改當前項目的用戶信息:
1)git config user.name "XXX"
2)git config user.email XXX@XXX.com
添加用戶后的配置信息.png
git config --list顯示配置信息.png
注:如需配置所有項目的用戶信息和郵箱,使用 --global選項,代表“全局設置”,即整個系統中的git管理的所有項目都會默認使用此種配置信息。如下:
git config --global user.name "XXX" (配置所有項目用戶信息)
git config --global user.email XXX@XXX.com (配置所有項目郵箱信息)
如只查用戶信息:
當前項目:
git config user.name
git config user.name
所有項目:
git config --global user.name
git config --global user.email
查詢用戶信息.png
- 創建本地文件夾(~代表/root/用戶明目錄):
mkdir ~/carina (即/root/carina)
cd ~/carina - 創建文件并賦值內容11
echo "# 11" >> README.md - 按照Github網頁上的命令輸入(步驟1 點Create Repository后就會跳轉到該頁面)
1)git init (初始化一個Git倉庫,把目錄變成Git可以管理的倉庫)
2)git add README.md (添加文件到倉庫)
3)git commit -m "first commit"
(提交文件到倉庫,-m后面輸入的是本次提交的說明,commit可以一次提交很多文件)
4)git remote add origin git@github.com:Carinazhang/carina.git
5)git push -u origin master (將改動傳回git)
(可以把 master 換成你想要推送的任何分支)
如git add 報錯,則需先創建文件/文件夾
Github上面的carina項目內容已被更新
3、添加文件及文件夾
- 文件:
1)touch(創建的是空文件)
2)直接用vi text.txt,編輯內容后保存)
3)echo "文字描述" >> 文件名 -
文件夾:mkdir
添加文件及文件夾.png -
編輯與查看文件內容:vi / cat
編輯與查看文件內容.png -
查看創建的內容:ll
查看創建的內容.png
4、添加并上傳文件 :git add (添加)/git commit (提交)
P.S. 空文件不能添加,如圖中b、c文件夾里面并沒有子文件
- 查看當前倉庫的狀態 git status
查看當前倉庫的狀態 -
查看git 操作記錄
查看git 操作記錄.png
5、文件打包:tar -zcvf
6、部署目錄
創建文件夾 www,clone版本庫
7、解壓文件:tar -zxvf
常見問題
1、項目權限不足
2、get remote add origin 報錯
解決辦法如下
1)git remote rm origin
2)git remote add origin git@github.com:個人賬號/項目名.git
3、在使用git 對源代碼進行push到gitHub時可能會出錯
出現錯誤的主要原因是github中的README.md文件不在本地代碼目錄中
解決辦法
先執行 git pull --rebase origin master
再執行 git push -u origin master
即可完成代碼上傳到github
以下補充下密碼設置方法
Git使用https協議,每次pull, push都要輸入密碼,可以通過以下3步省去輸密碼的麻煩
-
本地生成密鑰對
檢查計算機密鑰:cd ~/.ssh
檢查計算機密鑰.png
如沒有id_dsa.pub(公鑰) 或 id_rsa(密鑰)文件,可以用 ssh-keygen 來創建
命令:ssh-keygen -t rsa -C “email”
如不設置密碼直接敲回車鍵
ssh-keygen 來創建公鑰和密鑰.png -
添加公鑰到github帳戶
1)查看公鑰:cat ~/.ssh/id_rsa.pub
查看公鑰
2)登錄github帳戶進行設置
Settings--SSH and GPG keys--New SSH key(填寫Key)-Add SSH key
配置公鑰信息1.png
配置公鑰信息2.png
輸入個人賬號的密碼 進行確認
配置公鑰信息3.png
3)驗證key是否正確:ssh -T git@github.com
驗證key是否正確.png -
修改本地的ssh remote url. 不用https協議,改用git 協議
1)查看當前的remote url:git remote -v,從下圖看到是用https協議進行訪問的
查看remote url.png
2)登錄github,切換至SSH
登錄github,切換至SSH.png
3)使用 git remote set-url來調整url
git remote set-url origin git@github.com:Carinazyp/carina.git
使用 git remote set-url來調整url.png
二、網上下載倉庫
1、尋找庫 https://git.kernel.org/pub/scm/
2、clone倉庫
命令:git clone https://www.kernel.org/pub/scm/git/git.git
若不指定路徑時默認clone在根目錄下(若想指定路徑,先cd到目錄 再clone)
3、打包文件 打包上傳到服務器:
-
先創建根目錄再建子目錄:cd到app1下,mkdir bak www
先創建根目錄再建子目錄.png - 如app1目錄不存在,可直接建多級樹:mkdir -p /app1/bak /app1/www,若存在app1,這樣操作也是可以的,系統會在app1下創建2個bak和www)
-
打包文件:cd到etc目錄
tar -zcvf /app/bak/zyp1.tar.gz audit cloud dhcp dracut.conf
文件打包.png - 上傳至虛擬機:scp local_file remote_ip:remote_file(本地文件上傳至遠程)
scp /app1/bak/zyp1.tar.gz 192.168.174.128:/app1/bak
4、部署到www目錄
命令:mv /app1/bak/zyp1.tar.gz /app1/www
(此時不在根目錄下也可以操作)
部署到www目錄.png
也可以進行文件copy
copy到www目錄.png
5、解壓文件
cd到www路徑后解壓:tar -zxvf zyp1.tar.gz
圖片.png
6、查看壓縮包內內容
命令:tar -tvf zyp1.tar.gz
查看包內內容.png