因爲軟件構造課程須要,學習使用git,如下做爲學習筆記。html
1、Git初始化及倉庫建立和操做git
1.基本信息設置(設置簽名)github
命令bash
項目級別/倉庫級別:僅在當前本地庫範圍內有效less
git configssh
系統用戶級別:登陸當前操做系統的用戶範圍學習
git config –global測試
ls -lA|less 查看文件內容fetch
級別優先級:就近原則->項目級別優先於系統用戶級別網站
1.設置用戶名
git config –global user.name ‘hiter1170301015’
2.設置用戶郵箱
git config –global user.email ‘1411021410@qq.com’
3.查看設置
git config –list
注:該設置在GitHub倉庫主頁顯示誰提交了該文件
辨析:設置的簽名和登陸遠程庫(代碼託管中心)的帳號和密碼沒有任何關係
2.初始化一個新的Git庫
mkdir test
cd test
git init
注:.git目錄中存放的是本地庫相關的子目錄和文件,不要刪除,也不可隨意修改
3.向倉庫添加文件
touch xx(文件) 建立新文件
git status 查看文件狀態
git add hello.c 添加至暫存區
git status
git commit -m ‘提交描述’ 將文件從暫存區提交到倉庫
git rm –cached hello.c 將文件從暫存區撤回至工做區
4.修改文件
nano hello.c
重複向倉庫添加文件
5.刪除倉庫文件
1.)刪除文件
rm -rf hello.c
2.)從git中刪除文件
git rm hello.c
3.)提交操做
注:git rm -f hello.c 同時刪除工做區和暫存區文件
6.永久刪除文件後找回
找回:回退到某一個記錄
7.添加至暫存區的刪除文件找回
git reset –hard HEAD
注:刪除後可找回,須要文件存在時的狀態提交至本地庫
git log
git log –pretty=oneline
git log --oneline
git reflog 顯示到某個版本須要幾步 HEAD@{移動到當前版本須要多少步}
多屏顯示控制方式:
空格向下翻頁
b向上翻頁
q退出
8.前進後退(使用指針head)
基於索引值操做 git reset –hard [局部索引值]
使用^符號:只能後退
git reset –hard HEAD^ 回退一步
git reset –hard HEAD^^ 回退兩步
git reset –hard HEAD^^^ 回退三步
使用~符號
git reset –hard HEAD~3 回退三步
注:reset命令的三個參數對比
--soft 僅僅在本地庫移動HEAD指針
--mixed 在本地庫移動HEAD指針,重置暫存區
--hard 在本地庫移動HEAD指針,重置暫存區和工做區
比較文件差別 git diff [文件名]
將工做區中的文件和暫存區中進行比較
結果
git diff [本地庫中歷史版本] [文件名]
將工做區中文件和本地庫歷史記錄比較
注:不帶文件名能夠比較多個文件
2、分支
在版本控制過程當中,使用多條線同時推動多個任務
優勢:同時並行推動多個功能開發,提升開發效率;各個分支在開發過程之中,若是某一個分支開發失敗,不會對其餘分支有任何影響,失敗的分支刪除後從新開始便可。
git branch -v 查看全部分支
git branch 分支名 新建分支
git checkout 分支名 切換到某一分支
在不一樣分支上進行修改 修改後哈希值發生改變
1.合併分支
切換到接受修改的分支上(被合併,增長新內容),執行merge命令
將hot_fix合併至master
2.合併衝突 修改不一樣分支同一文件的同一位置
刪除特殊符號,修改文件內容後,便可進行合併。
3、git遠程倉庫管理
新建別名 git remote add 別名 原名(遠程庫原地址)
本地庫推送至遠程庫 git push 別名 分支名
1.Git克隆操做
目的:將遠程倉庫(GitHub對應的項目)複製到本地
git clone 倉庫地址
效果:完整的把遠程庫下載到本地;建立origin遠程地址別名;初始化本地庫
2.遠程庫的拉取
pull=fetch+merge
1)git fetch [遠程庫地址別名] [遠程分支名]
2)git merge [遠程庫地址別名/遠程分支名]
兩步驟等同於
git pull [遠程庫地址別名] [遠程分支名]
3.協同開發時的衝突解決
兩人同時修改同一位置,先提交的人成功。
後提交的人須要先拉取,再推送。(不是基於GitHub的最新版)
若進入衝突狀態,進入「分支衝突」解決。
4.跨團隊協做
1. )其餘用戶點擊
此時其餘用戶回到他的主頁
當前倉庫全部人是其餘用戶,可是是從咱們的團隊fork來的
2.)本地bash 進行clone 修改後推送到遠程
3.)其餘用戶
發送具體信息
4. )咱們的團隊
查看消息內容,可進行對話,代碼審覈,肯定沒有問題。
填寫本次操做的日誌信息
5.遠程庫的修改可拉取至本地
4、SSH免密登陸
1.進入當前用戶的家目錄 $ cd ~
2.刪除.ssh 目錄$ rm -rvf .ssh
3.運行命令生成.ssh 密鑰目錄 $ ssh-keygen -t rsa -C 用戶郵箱
4.進入.ssh 目錄查看文件列表 $ cd .ssh $ ls -lF
查看id_rsa.pub 文件內容 $ cat id_rsa.pub
5.複製id_rsa.pub 文件內容,登陸GitHub,點擊用戶頭像→Settings→SSH and GPG Keys -> New SSH Key 輸入複製的密鑰信息
6.回到Git bash 建立遠程地址別名 $ git remote add origin_ssh ssh地址
7.推送文件進行測試
附:解決git push錯誤 The requested ULR returned error:403 Forbidden while accessing
私有項目,沒有權限,輸入用戶名密碼,或者遠程地址採用這種類型
vi .git/config
#將
[remote 「origin」]
url=https://github.com/用戶名/倉庫名.git
修改成:
[remote 「origin」]
url=https://用戶名:密碼@github.com/用戶名/倉庫名.git
5、github pages 搭建網站
我的站點
訪問
搭建步驟
1.建立我的站點->新建倉庫(注:倉庫名必須是【用戶名.github.io】)
2.在倉庫下新建index.html的文件便可
注:1.github pages 僅支持靜態網頁
2.倉庫裏面僅能有.html文件
Project Pages 項目站點
附:邀請團隊成員