最近沒有很忙,就給大家總結一下有關git的一些相關知識吧!讀完下面的內容你就基本掌握了git
在這之前先為大家普及一些相關知識(ps文章有點長,重點 在后面git的操作演示部分):
版本控制系統(Version Control System):是一種記錄一個或若干文件內容變化,以便將來查閱特定版本修訂情況的系統。版本控制系統不僅可以應用於軟件源代碼的文本文件,而且可以對任何類型的文件進行版本控制。
常見的版本控制系統有:svn、cvs、git
本地版本控制系統
本地版本控制系統就是在一台機器上,記錄版本的不同變化,保證內容不會丟失
缺點:如果多人開發,每個人都在不同的系統和電腦上開發,沒辦法協同工作。
集中式版本控制系統
svn/cvs都是集中式的版本控制系統
分布式版本控制系統
git是分布式的版本控制系統。
通過上面的介紹我相信你已經對版本控制系統有了一定的了解,接下來我們就詳細的介紹一下今天的主角git
Git是一款免費、開源的分布式 版本控制系統 ,用於敏捷高效地處理任何或小或大的項目。
Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。
1. 不要安裝在中文目錄
2. 不要使用桌面管理軟件
安裝很簡單,一直下一步即可。在任意的目錄下右鍵,能夠出現下圖,表示安裝成功了。
git是用法方式主要有兩種,
bash是linux系統的命令,因此學習git前,我們先學習一下bash(bash並不是必需,其實我們直接像平時那樣在外面建文件夾查看文件 就可以了,當然一些簡單的cd命令你需要記一下,用bash只是比較專業[逼格高])
# cd 改變目錄 (change directory)
cd images #進入images文件夾
cd .. #進入上一層目錄
cd ~ #進入用戶根目錄
# tab 自動補全,當我們輸命令或者目錄很長時,可以使用tab鍵進行自動補全。
# 按兩次tab,會把所有符合要求的內容都列出來。
# pwd 打印當前目錄的路徑 (print work directory)
pwd
# ls 展示當前目錄列表(list)
ls # 展示當前目錄
ls -a # 展示全部內容,包括隱藏文件
ls -l # 以列表的形式展示內容
ls -al # 以列表的形式展示所有的內容,包括隱藏文件。
ls --help # 查看ls所有的參數。
ls -l images # 展示images目錄下的文件,如果沒有寫目錄,默認展示當前目錄。
# clear reset清屏
clear # 清除屏幕內容,滾動條,保留了歷史
reset # 重置,歷史記錄沒了。
# mkdir 創建一個文件夾 (make directory)
mkdir css # 創建一個css的文件夾
mkdir css img js # 創建了三個文件夾
# rmdir 刪除一個空的文件夾(沒啥用)
rmdir img # 刪除文件夾
# touch 創建文件
touch index.html #創建了一個index.html文件
touch css/index.css # 在css目錄下創建idnex.css文件
# rm 刪除一個文件獲取文件夾
rm index.html # 刪除index.html文件
rm js # 刪除空的js文件夾
rm -r css # 遞歸刪除一個文件夾
# mv 移動文件(move)
mv index.html js # 將html文件移動到js文件夾中
mv index.html index2.html # 將index.html重命名為index2.html
# cp 復制文件(cp)
cp index.html index2.html # 復制index.html文件,命名為index2.html
cp -r css css02 # 如果復制的是文件夾,需要使用-r參數。
# cat 查看文件全部內容
cat index.html
# less 查看文件部分內容
less index.html
# q退出查看
git init
git status
git add 文件名
git commit -m '提交說明'
git log
# 初始化git倉庫,會在當前目錄生成一個隱藏文件夾 .git 不要去修改這個文件夾下的任意東西。 git init
( 演示 :首先你先在常用的目錄下創建一個文件夾,在文件夾里面加點文件,比如index.html,README.md
接下來用上面介紹的命令去初始化這個庫,怎么做?在當前的目錄下右鍵然后點git Bash here,接着在黑窗下輸git init
到這里初始化倉庫已經成功,在你的文件下會出現一個.git文件夾
(補充)
#設置提交時的用戶信息
$ git config [--global] user.name "寫你的用戶名" $ git config [--global] user.email "寫你的郵箱"
這一步很重要,后面github也要使用的這個用戶名和密碼,不要將密碼忘記,執行完之后你會在你的c盤 -->用戶-->
Administrator里找到 .gitconfig這個文件就說明成功了
下面我在2.4也單獨列出來講了
# 查看git的狀態 ,如果此時新建一個文件,那么這個文件是沒有被追蹤的,說白了git還沒有管理這個新建的文件git status

(此時我們初始化的庫還沒有去管理我們的這些文件,我們需要手動去將文件上傳到git庫去)# 讓git管理這個新建的文件git add index.html

輸入上面的命令不會有任何反應的話就是對的,但是你會發現如果我們的文件很多的話我們這樣一個個添加會很慢
所以我們可以使用 git add . 來實現批量上傳文件(add和 . 之間是有空格的),做完這個操作之后文件是在暫
存區的。我們可以查看一下此時的狀態

# 讓文件由暫存區提交到倉庫區。此時文件才真正的被git管理了。 要讓文件提交到倉庫區我們需要執行 git commit -m ‘這里面寫你提交東西的描述’

到了這一步就成功將文件提交到倉庫了
# 如果提交日志亂碼,右鍵-->options-->Text-->將編碼改成utf-8# 查看提交日志git log

如果第一次使用git,會要求設置用戶名和郵箱
# git config user.name 你的目標用戶名
# git config user.email 你的目標郵箱名
# 這種配置方式只有在當前倉庫生效
git config user.name hcc
git config user.email ljl@163.com
# 可以使用--global參數,配置全局的用戶名和郵箱,這樣別的git倉庫就不需要重新配置了。
# 如果同時配置了局部的和全局的,那么局部的用戶名和郵箱將會生效。
git config --global user.name hucc
git config --global user.email 753540636@qq.com
# 查看配置信息
git config --list
git add 文件名
git add index.html
git add --all
或者 git add -A
獲取git add .
(簡寫) 添加所有文件git add a.txt b.txt
同時添加兩個文件git add *.js
添加當前目錄下的所有js文件git checkout 1.txt
將暫存區中1.txt文件恢復到工作區git commit -m "提交說明"
git status
git stauts -s
簡化日志輸出格式git log
只能查看當前head以及以前的日志git log --oneline
簡潔的日志信息git reflog
查看所有的提交變更日志git reset --hard 版本號
將代碼回退到某個指定的版本(版本號只要有前幾位即可)git reset --hard head~1
將版本回退到上一次提交
在倉庫中,有些文件是不想被git管理的,比如數據的配置密碼、寫代碼的一些思路等。git可以通過配置從而達到忽視掉一些文件,這樣這些文件就可以不用提交了。
.gitignore
的文件,文件名是固定的。.gitignore
中# 忽視idea.txt文件
idea.txt
# 忽視.gitignore文件
.gitignore
# 忽視css下的index.js文件
css/index.js
# 忽視css下的所有的js文件
css/*.js
# 忽視css下的所有文件
css/*.*
# 忽視css文件夾
css
分支就是科幻電影里面的平行宇宙,當你正在電腦前努力學習Git的時候,另一個你正在另一個平行宇宙里努力學習SVN。
如果兩個平行宇宙互不干擾,那對現在的你也沒啥影響。不過,在某個時間點,兩個平行宇宙合並了,結果,你既學會了Git又學會了SVN!
git branch 分支名稱
創建分支,分支中的代碼,在創建時與當前分支的內容完全相同。master
的主分支。git branch
可以查看所有的分支,*
git checkout 分支名稱
切換分支git checkout -b 分支名稱
創建並切換分支git branch -d 分支名稱
可以刪除分支master
分支是可以刪除的,但是不推薦那么做。git merge 分支名稱
將其他分支的內容合並到當前分支。master
分支中執行git merge dev
將dev
分支中的代碼合並到master
分支所有的程序員都可以通過遠程倉庫來進行版本的共享,達到所有人的代碼一致的效果。
git push 倉庫地址 master
在代碼提交到遠程倉庫,注意master分支必須寫,不能省略git push git@github.com:hucongcong/test.git master
如果第一次使用,需要填寫github的用戶名和密碼git pull 代碼地址
將遠程的代碼中master分支下載到本地git clone 倉庫地址 自定義本地倉庫名
將整個倉庫克隆到本地每次push和pull操作都需要帶上遠程倉庫的地址,非常的麻煩,我們可以給倉庫地址設置一個別名
git remote add 倉庫別名 倉庫地址
使用倉庫別名替代倉庫地址。倉庫別名相當於一個js變量,倉庫地址就是對應的值。
git remote add hucc git@github.com:hucongcong/test.git
設置了一個hucc的倉庫別名,以后push和pull都可以不用倉庫地址,而用huccgit remote remove hucc
刪除hucc這個倉庫別名。git remote
查看所有的倉庫別名git clone
命令從遠程倉庫獲取下來的,那么這個本地倉庫會自動添加一個 origin的遠程地址,指向的就是克隆的遠程地址。git與github沒有直接的關系。
1. gitHub是一個面向開源及私有軟件項目的托管平台,因為只支持git 作為唯一的版本庫格式進行托管,故名gitHub。
2. github免費,代碼所有人都能看到,但是只有你自己能修改。付費的可以隱藏。
在github上創建一個項目,獲取到倉庫的地址。然后就可以將本地的代碼推送到遠程的服務器上。
(對稱加密與非對稱加密)
每次push代碼,都需要輸入用戶名跟密碼,非常的麻煩。因此我們可以配置一個SSH免密碼登陸。
在git bash中輸入 ssh-keygen -t rsa 然后一路回車 出現 2048就完成了
C:\用戶\當前用戶名\
找到 .ssh
文件夾id_rsa
id_rsa.pub (將這個在記事本中打開,然后復制[這個就是key])
github -> settings -> SSH and GPG keys
頁面中,新創建SSH keyid_rsa.pub
內容到對應文本框中git@github.com:用戶名/倉庫名.git
GitHub Pages 本用於介紹托管在 GitHub 的項目, 不過,由於他的空間免費穩定,用來做搭建一個博客再好不過了。
缺點:只能放靜態頁面,也就說github pages只能解析html、css、js,無法解析后端語言。
[用戶名.github.io] 將來訪問路徑
博客搭建步驟:
git init
git add [文件路徑]
git commit -m "第一個博客"
用戶名.github.io
固定的git push github倉庫地址 master
首先我們要安裝這個游戲,githug使用Ruby編寫的可以用命令安裝 gem install githug
如果遇到權限問題 加上 sudo:sudo gem install githug 安裝成功后就可以根據提示闖關啦
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。