所以創(chuàng)建一個(gè)版本庫(kù)也非常簡(jiǎn)單,如下我是D盤 –> www下 目錄下新建一個(gè)testgit版本庫(kù)。
pwd? 顯示當(dāng)前的目錄************************************
1. 通過(guò)命令 git init 把這個(gè)目錄變成git可以管理的倉(cāng)庫(kù)
2. 把文件添加到版本庫(kù)中。
git? add 1.php? ? ? ? ? ? ? ? ? ? ? ? 添加到暫存區(qū)
git commit -m "1.php提交"? ? 從暫存區(qū)提交到倉(cāng)庫(kù)
git status? ? 查看是否還有文件未提交
修改了文件
接下來(lái)
git diff 1.php? ? 查看問(wèn)價(jià)改了什么樣的內(nèi)容
然后? add? commit
git? log? 顯示從最近到最遠(yuǎn)的顯示日志
git log -–pretty=oneline? ? 嫌上面顯示的信息太多的話,簡(jiǎn)介顯示
git reset --hard HEAD~100
git reset --hard? HEAD^? ? 回退到上一個(gè)版本
git reset --hard? 版本號(hào)? ? 通過(guò)版本號(hào)回退恢復(fù)原來(lái)的信息
git reflog? 獲取所有的版本號(hào)
工作區(qū)? 版本庫(kù) .get
stage暫存區(qū)
git 為我們自動(dòng)創(chuàng)建了第一個(gè)分支master
指向master的一個(gè)指針HEAD
撤銷修改************************************
1.readme.txt自動(dòng)修改后,還沒(méi)有放到暫存區(qū),使用 撤銷修改就回到和版本庫(kù)一模一樣的狀態(tài)。? ? git checkout? 1.php
2.另外一種是readme.txt已經(jīng)放入暫存區(qū)了,接著又作了修改,撤銷修改就回到添加暫存區(qū)后的狀態(tài)。 git? reset HEAD 1.php? 從暫存區(qū)退到工作區(qū)? ? git checkout? 1.php 從工作區(qū)直接恢復(fù)到原始狀態(tài)
刪除文件************************************
在目錄中直接刪除文件
同時(shí) git status? ? 查看狀態(tài)
git checkout -- b.txt? ? 或者是? git reset --hard 版本號(hào)? ? ? 只要沒(méi)有commit之前,在版本庫(kù)中恢復(fù)此文件
git? commit -a -m? "刪除b.txt文件"? ? 在版本庫(kù)中徹底刪除b.txt文件
遠(yuǎn)程倉(cāng)庫(kù)************************************
只有存在倉(cāng)庫(kù),才可以保濕用戶可以進(jìn)行開發(fā),但是在d:\mypro 目錄下已經(jīng)存在有了一個(gè)本地倉(cāng)庫(kù),所以下網(wǎng)把本地倉(cāng)庫(kù)發(fā)布到服務(wù)器上。
GITHUB? 免費(fèi)的服務(wù)器? 用戶可以直接在此往回走哪上定義屬于自己的項(xiàng)目
注冊(cè)? https:www.github.com
創(chuàng)建SSH Key 在windows平臺(tái)下可以直接使用“git bash”工具創(chuàng)建
#######在git bash 中進(jìn)行操作開始####################################################################
生成一個(gè)RSA編碼的KEY
ssh-keygen? -t rsa –C “youremail@example.com”
首先是保存位置;
里面注冊(cè)的時(shí)候輸入密碼:815288
會(huì)自動(dòng)在用戶所在目錄下生成一個(gè)“.sh” 的目錄 ,里面保存有兩個(gè)文件:id_rsa是私鑰? ? ? id_rsa.pub是公鑰
#######在git bash 中進(jìn)行操作結(jié)束##########################################################
打開DITPUB的設(shè)置頁(yè)面
選擇“add an SSH Key”,表示要增加新的key
title? ? cmdself
找到id_rs.pub文件的內(nèi)容,把公鑰的信息取出來(lái) 黏貼在key的位置(注意:別添加任何無(wú)用的內(nèi)容)
1.在GITHUB上創(chuàng)建一個(gè)倉(cāng)庫(kù)
在個(gè)人設(shè)置那里 點(diǎn)擊+----new repository
設(shè)置倉(cāng)庫(kù)的名稱是:“mldn”
隨后選擇創(chuàng)建倉(cāng)庫(kù),而倉(cāng)庫(kù)創(chuàng)建完成之后會(huì)給出兩種連接方式:
ssh連接地址:git@github.com:summer815288/midn.git
https的連接地址:https://github.com/summer815288/midn.git
本地倉(cāng)庫(kù)必須視同以上的地址下可以發(fā)布到服務(wù)器上
2.把GITHUB與本地倉(cāng)庫(kù)相關(guān)聯(lián)
git remote add zhaopin? https://github.com/summer815288/zhaopin.git
(此時(shí)已經(jīng)和遠(yuǎn)程倉(cāng)庫(kù)進(jìn)行了連接,但是遠(yuǎn)程倉(cāng)庫(kù)里面并沒(méi)有本地倉(cāng)庫(kù)的內(nèi)容)
3.將所有的內(nèi)容推送到GITHUB上
git push -u zhaopin? master
(由于現(xiàn)在遠(yuǎn)程倉(cāng)庫(kù)中并沒(méi)有任何的文件存在,所以以上是將所有文件進(jìn)行推送。)
(但是由于是第一次推送,而且推送的為master分支,那么使用了一個(gè)“-u”的參數(shù)將遠(yuǎn)程的master和本地的master進(jìn)行關(guān)聯(lián))
4.完成之后現(xiàn)在切換到GITPUB上進(jìn)行觀察
增加一個(gè)關(guān)聯(lián)倉(cāng)庫(kù)
git remote add test? git@github.com:summer815288/midn.git
git push -u? test master
5.切換回origin倉(cāng)庫(kù)
git remote set-url origin? https://github.com/summer815288/midn.git
6.觀察現(xiàn)在遠(yuǎn)程服務(wù)器已經(jīng)存在的倉(cāng)庫(kù)信息
git remote -v
7.刪除倉(cāng)庫(kù)
git remote rm test
(現(xiàn)在只有一個(gè)倉(cāng)庫(kù))
8.修改mypro中的文件 1.php
9.注意:此時(shí)所作出的修改屬于本地的修改,需要將其提交到服務(wù)器上。
git commit -a -m "change File 1.php"
10.這個(gè)時(shí)候只是將其加到了本地的master分支上,但是遠(yuǎn)程的master分支依然沒(méi)有發(fā)生改變。
所以下面需要進(jìn)行客戶端向服務(wù)器端的代碼的推送
git push origin master
*********到此為止就完成了本地代碼與服務(wù)器代碼的同步************************
克隆倉(cāng)庫(kù)************************************
之前的講解是:
先有了本地倉(cāng)庫(kù),而后將本地倉(cāng)庫(kù)提交到遠(yuǎn)程倉(cāng)庫(kù)上進(jìn)行管理,
但是這是一個(gè)錯(cuò)誤的倉(cāng)庫(kù),正確的做法是應(yīng)該先有了遠(yuǎn)程倉(cāng)庫(kù),而后根據(jù)此遠(yuǎn)程倉(cāng)庫(kù)克隆出一個(gè)姓的倉(cāng)庫(kù)來(lái)。
1.在GITHUB上初始化一個(gè)新的倉(cāng)庫(kù)。mldback
title-----mldnback
注意選中一個(gè):“Initialize this repository with a README”
表示自動(dòng)為用戶進(jìn)行倉(cāng)庫(kù)的初始化,并且會(huì)自動(dòng)存在有一個(gè)“README”的文件存在。
倉(cāng)庫(kù)創(chuàng)建完成之后來(lái)觀察一下此時(shí)倉(cāng)庫(kù)的內(nèi)容。
2.在本地磁盤上進(jìn)行倉(cāng)庫(kù)的克隆操作
cd? /? ? (不要在“d:\mldn”目錄下完成,而直接是換一個(gè)新目錄。比如在d盤的根目錄進(jìn)行克隆操作)
git? clone? https://github.com/summer815288/midn.git
在D盤手動(dòng)中進(jìn)行查找 midnback ,然后添加一個(gè)文件hello.txt
cd? ? mldnback
git status
git commit -a -m "create hello.txt"? ? ? ? //添加文件到緩存區(qū)并提交到倉(cāng)庫(kù)
git push origin master? ? ? ? ? ? ? ? ? ? ? ? ? //更新服務(wù)器中的數(shù)據(jù)
再次查看GITPUB可以看到里邊的文件已經(jīng)得到更新
克隆其他的開源項(xiàng)目**************************************8
GITCUB有很多的開源項(xiàng)目;bootstrap? mybatis
bootstrap :? https://github.com/twbs/bootstrap
mybatis:? ? ? https://github.com/mybatis
總結(jié):
1.GITPU只是一個(gè)免費(fèi)的遠(yuǎn)程倉(cāng)庫(kù),并不能保證其的安全性。
Git基本常用命令如下:
mkdir:? ? ? ? XX (創(chuàng)建一個(gè)空目錄 XX指目錄名)
pwd:? ? ? ? ? 顯示當(dāng)前目錄的路徑。
git init? ? ? ? ? 把當(dāng)前的目錄變成可以管理的git倉(cāng)庫(kù),生成隱藏.git文件。
git add XX? ? ? 把xx文件添加到暫存區(qū)去。
git commit –m “XX”? 提交文件 –m 后面的是注釋。
git status? ? ? ? 查看倉(cāng)庫(kù)狀態(tài)
git diff? XX? ? ? 查看XX文件修改了那些內(nèi)容
git log? ? ? ? ? 查看歷史記錄
git reset? –hard HEAD^ 或者 git reset? –hard HEAD~ 回退到上一個(gè)版本
(如果想回退到100個(gè)版本,使用git reset –hard HEAD~100 )
cat XX? ? ? ? 查看XX文件內(nèi)容
git reflog? ? ? 查看歷史記錄的版本號(hào)id
git checkout — XX? 把XX文件在工作區(qū)的修改全部撤銷。
git rm XX? ? ? ? ? 刪除XX文件
git remote add origin https://github.com/tugenhua0707/testgit 關(guān)聯(lián)一個(gè)遠(yuǎn)程庫(kù)
git push –u(第一次要用-u 以后不需要) origin master 把當(dāng)前master分支推送到遠(yuǎn)程庫(kù)
git clone https://github.com/tugenhua0707/testgit? 從遠(yuǎn)程庫(kù)中克隆
git checkout –b dev? 創(chuàng)建dev分支 并切換到dev分支上
git branch? 查看當(dāng)前所有的分支
git checkout master 切換回master分支
git merge dev? ? 在當(dāng)前的分支上合并dev分支
git branch –d dev 刪除dev分支
git branch name? 創(chuàng)建分支
git stash 把當(dāng)前的工作隱藏起來(lái) 等以后恢復(fù)現(xiàn)場(chǎng)后繼續(xù)工作
git stash list 查看所有被隱藏的文件列表
git stash apply 恢復(fù)被隱藏的文件,但是內(nèi)容不刪除
git stash drop 刪除文件
git stash pop 恢復(fù)文件的同時(shí) 也刪除文件
git remote 查看遠(yuǎn)程庫(kù)的信息
git remote –v 查看遠(yuǎn)程庫(kù)的詳細(xì)信息
git push origin master? Git會(huì)把master分支推送到遠(yuǎn)程庫(kù)對(duì)應(yīng)的遠(yuǎn)程分支上