Git是一個版本管理操做的工具 很是N,能夠很智能的分佈式管理,git
本網站學習筆記 來自於廖雪峯老師的內容借鑑 github
安裝運維
yum -y install git
本地設置全局ssh
告知是誰提交代碼 信息分佈式
# git config --global user.name "xxx" # git config --global user.email "xxx"
顏色設置
# git config --global color.ui true
查看設置信息
# git config --list
由於Git是分佈式版本控制系統,因此,每一個機器都必須自報家門:你的名字和Email地址。你也許會擔憂,若是有人故意冒充別人怎麼辦?這個沒必要擔憂,首先咱們相信你們都是善良無知的羣衆,其次,真的有冒充的也是有辦法可查的。工具
注意git config
命令的--global
參數,用了這個參數,表示你這臺機器上全部的Git倉庫都會使用這個配置,固然也能夠對某個倉庫指定不一樣的用戶名和Email地址。學習
初始化倉庫fetch
什麼是版本庫呢?版本庫又名倉庫,英文名repository,你能夠簡單理解成一個目錄,這個目錄裏面的全部文件均可以被Git管理起來,每一個文件的修改、刪除,Git都能跟蹤,以便任什麼時候刻均可以追蹤歷史,或者在未來某個時刻能夠「還原」。網站
[root@localhost ~]# mkdir learngit
[root@localhost ~]# cd learngit/
[root@localhost learngit]# pwd
/root/learngit
[root@localhost learngit]# git init
Initialized empty Git repository in /root/learngit/.git/
[root@localhost learngit]# ls -a
. .. .git
瞬間Git就把倉庫建好了,並且告訴你是一個空的倉庫(empty Git repository),細心的讀者能夠發現當前目錄下多了一個.git
的目錄,這個目錄是Git來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄裏面的文件,否則改亂了,就把Git倉庫給破壞了 ui
提交代碼流程
先建立文件 # cat readme.txt
Git is a version control system
Git is free software
必定要放到learngit
目錄下(子目錄也行),由於這是一個Git倉庫,放到其餘地方Git再厲害也找不到這個文件。和把大象放到冰箱須要3步相比,把一個文件放到Git倉庫只須要兩步。
第一步,用命令告訴Git,把文件添加到倉庫:
git add readme.txt
第二步,用命令告訴Git,把文件提交到倉庫: # git commit -m "wrote a readme file"
[master (root-commit) d1b9afa] wrote a readme file
1 files changed, 2 insertions(+), 0 deletions(-)
create mode 100644 readme.txt 查看狀態 #git statusgit addgit commit
回退版本
# git reset --hard HEAD^ 注 ^表示上個版本 ^^表示上兩個版本 回退指定版本 # git reflog 8b1cc8f HEAD@{0}: HEAD^: updating HEAD 10c245e HEAD@{1}: commit: add 2hehe 8b1cc8f HEAD@{2}: commit: the 2th commit 9ec14f1 HEAD@{3}: commit (initial): the first commit # git reset --hard 9ec14f1 HEAD is now at 9ec14f1 the first commit
git checkout -- readme.txt #重新拉取數據
遠程倉庫
在github上面建立一個倉庫 而後加入本地的公鑰上傳到github上面的setting裏面的SSH-KEY
本地建立祕鑰 # ssh-keygen -t rsa 公鑰上傳到setting 設置SSH Key
#cd /root/oldboy #git remote add origin git@github.com:yefei520/demo.git #git pull #git pull origin master #git push -u origin master
git Tag標籤
建立標籤
#git tag -a v1.2 -m "information" #上面的命令咱們建立了本地一個版本V1.2,而且添加了附註信息 ‘information’ #查看標籤 #git tag v1.2 #獲取標籤顯示附註信息 #git show v1.2
可是目前這個標籤僅僅是提交到了本地git倉庫,如何同步到遠程代碼庫
tag遠程推送
#git push origin --tags 這樣咱們就把本地版本推送到了遠程代碼倉庫
若是剛剛同步上去,你缺發現一個致命bug ,須要從新打版本,如今還爲時不晚.
刪除標籤:
#git tag -d v1.2
到這一步咱們只是刪除了本地 V1.2的版本,但是線上V1.2的版本仍是存在,如何辦?
這時咱們能夠推送的空的同名版本到線下,達到刪除線上版本的目標:
#git push origin :refs/tags/v1.2
這時本地和遠程的 V1.2 版本已經被咱們移除掉.
如何獲取遠程版本:
#git fetch origin tag v1.2
這樣咱們能夠精準拉取指定的某一個版本.適用於運維同窗部署指定版本.
Github 是國外的 比較慢 並且是公開的 若是要加密 須要錢 可是有開源的Gitlab 開源的軟件 能夠替代Github 咱們開下一章 如何安裝Gitlab