1.安裝git
下載安裝git
從[https://git-for-windows.github.io](https://git-for-windows.github.io/)
下載(網(wǎng)速慢的同學(xué)請移步[國內(nèi)鏡像]
(https://pan.baidu.com/s/1kU5OCOB#list/path=%2Fpub%2Fgit)),
然后按默認(rèn)選項安裝即可
安裝完成后,在開始菜單里找到“Git”->“Git Bash”,蹦出一個類似命令行窗口的東西,就說明Git安裝成功!
安裝完成后,還需要最后一步設(shè)置,在命令行輸入:
(配置電子郵件和用戶名,git需要知道你是誰)
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
2.創(chuàng)建版本庫
什么是版本庫呢?版本庫又名倉庫,英文名repository,你可以簡單理解成一個目錄,這個目錄里面的所有文件都可以被Git管理起來,每個文件的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原”。
在本地創(chuàng)建版本庫
特別提示:window版本的項目目錄一定要包含父目錄,否則會很容易出現(xiàn)這樣那樣的錯誤(親測!!!各位小伙伴注意)
首先,選擇一個合適的地方,創(chuàng)建一個空目錄;
其次,通過git init命令把這個目錄變成Git可以管理的倉庫:
$ git init
瞬間Git就把倉庫建好了,而且告訴你是一個空的倉庫(empty Git repository),當(dāng)前目錄下多了一個.git的目錄,這個目錄是Git來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄里面的文件,不然改亂了,就把Git倉庫給破壞了
(如果沒出現(xiàn)這個文件說明電腦隱藏了不可見文件夾或文件在控制面板禮文件夾選項里勾選這個選項就出現(xiàn)了)
3.創(chuàng)建一個文件
例如: index.txt
內(nèi)容隨便寫,如 hello
接下來用命令git add告訴Git,把文件添加到倉庫:
(特別提示,txt文件最好不要用文本編輯器更改,很容易出現(xiàn)問題)
$ git add index.txt
然后用命令git commit告訴Git,把文件提交到倉庫
$ git commit -m "添加了一個文本文件"
4.遠(yuǎn)程倉庫
1.首先登錄你的githup
2.右上角點擊+號,創(chuàng)建一個新的倉庫(new repository),填寫上倉庫的名字和基本描述,確定,一個遠(yuǎn)程倉庫就創(chuàng)建好了,是不是很簡單
3.接下來創(chuàng)建SSH Key
$ ssh-keygen -t rsa -C "youremail@example.com"
youremail@example.com是你自己的郵件地址,記得一定要更改
執(zhí)行完成之后會在c盤的/用戶/本機(jī)用戶名/.ssh 文件夾內(nèi)生成三個文件
里面有id_rsa和id_rsa.pub兩個文件,這兩個就是SSH Key的秘鑰對,id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。
4.登陸GitHub,點擊右上角的頭像,打開“settings”,然后,點“[SSH and GPG keys]”,填上任意Title,在Key文本框里粘貼id_rsa.pub文件的內(nèi)容:
點擊add ssh key添加完成
5.關(guān)聯(lián)遠(yuǎn)成倉庫
目前,在GitHub上的這個learngit倉庫還是空的,GitHub告訴我們,可以從這個倉庫克隆出新的倉庫,也可以把一個已有的本地倉庫與之關(guān)聯(lián),然后,把本地倉庫的內(nèi)容推送到GitHub倉庫。
現(xiàn)在,我們根據(jù)GitHub的提示,在本地的倉庫下運(yùn)行命令:
$ git remote add origin git@github.com:jsformat/virus.git
請千萬注意,把上面的jsformat替換成你自己的GitHub賬戶名,否則,你以后推送是推不上去的,因為你的SSH Key公鑰不在我的賬戶列表中。
添加后,遠(yuǎn)程庫的名字就是origin,這是Git默認(rèn)的叫法,也可以改成別的,但是origin這個名字一看就知道是遠(yuǎn)程庫。
6.現(xiàn)在就可以通過以下命令把本地庫的所有內(nèi)容推送到遠(yuǎn)程庫上:
$ git push -u origin master
執(zhí)行完成之后查看你的遠(yuǎn)成倉庫是不是文件被推送上來了。。
(正常的操作現(xiàn)在一個文件已經(jīng)被推送上來)
另外當(dāng)提交的遠(yuǎn)成倉庫出現(xiàn) 的一些問題
[git push origin master 報錯的解決方法]
1 錯誤提示如下:
2 [root@linux1 php]# git push -u origin master
3 To git@github.com:kangvcar/Results-Systems--PHP.git
4 ! [rejected] master -> master (fetch first)
5 error: failed to push some refs to 'git@github.com:kangvcar/Results-Systems--PHP.git'
6 hint: Updates were rejected because the remote contains work that you do
7 hint: not have locally. This is usually caused by another repository pushing
8 hint: to the same ref. You may want to first merge the remote changes (e.g.,
9 hint: 'git pull') before pushing again.
10 hint: See the 'Note about fast-forwards' in 'git push --help' for details.
原因:
GitHub遠(yuǎn)程倉庫中的README.md文件不在本地倉庫中。
解決方案:
我們只需加上 --rebase 參數(shù)然后再重新 push 一次即可
$ git pull --rebase origin master
$ git push -u origin master
對于拉取遠(yuǎn)成倉庫文件到本地
git clone https://github.com/jsformat/virus.git
//https://github.com/jsformat/virus.git 這個地址是你遠(yuǎn)程倉庫地址
刪除本地文件然后同步到遠(yuǎn)程倉庫
git rm a.txt //刪除本地的a.txt
然后提交本次修改
git commit "刪除a.txt文件"
最后將文件同遠(yuǎn)成倉庫更新
git push
對于版本回退
首先,Git必須知道當(dāng)前版本是哪個版本,
在Git中,用HEAD表示當(dāng)前版本
上一個版本就是HEAD^,上上一個版本就是HEAD^^,當(dāng)然往上100個版本寫100個^比較容易數(shù)不過來,所以寫成HEAD~100。
我們要把當(dāng)前版本回退到上一個版本就可以使用git reset命令
git reset --hard HEAD^
//或者
git reset --hard 上一個版本號
回退過之后如果想在回來,
如果當(dāng)前的命令行窗口并沒有關(guān)閉,你可以找到ID號并且執(zhí)行:
git reset --hard 上一個版本號的ID
如果窗口已經(jīng)關(guān)閉了,git提供了一個命令
git reflog //用來記錄你的每一次命令,可以找到對應(yīng)的ID號
git分支操作
git 創(chuàng)建分支, 切換分支, 合并分支, 刪除分支及提交[commit提交到本地倉庫push名利提交到遠(yuǎn)程服務(wù)器], 檢出[pull], 沖突修改, 本地倉庫同步遠(yuǎn)程服務(wù)器[pul和push命令l]操作
開發(fā)中常用操作
刪除文件:git rm 文件名[刪除本地git倉庫文件, 提交后遠(yuǎn)程服務(wù)器上的文件才會消失]
查看狀態(tài):git status
添加記錄:git add 文件名 或 git add . [將文件提交到遠(yuǎn)程git服務(wù)器上]
添加描述:git commit -m "描述或備注類似svn提交時的注釋"
同步數(shù)據(jù):git pull [獲取git遠(yuǎn)程服務(wù)器上的數(shù)據(jù)也可以具體到某一分支如: git pull origin 分支名]
提交數(shù)據(jù):git push origin 分支名
分支操作
查看分支:git branch
創(chuàng)建分支:git branch 分支名
切換分支:git checkout 分支名
創(chuàng)建+切換分支:git checkout -b 分支名
合并某分支到當(dāng)前分支:git merge 分支名
[比如,如果要將開發(fā)中的分支(deve),合并到穩(wěn)定分支(master),
首先切換的master分支:git checkout master。
然后執(zhí)行合并操作:git merge deve。
如果有沖突,會提示你,調(diào)用git status查看沖突文件。
解決沖突,然后調(diào)用git add或git rm將解決后的文件暫存。
所有沖突解決后,git commit 提交更改。]
注意點:
分支衍合
分支衍合和分支合并的差別在于,分支衍合不會保留合并的日志,不留痕跡,而 分支合并則會保留合并的日志。
要將開發(fā)中的分支(dev),衍合到穩(wěn)定分支(master)。
首先切換的master分支:git checkout master。
然后執(zhí)行衍和操作:git rebase deve
如果有沖突,會提示你,調(diào)用git status查看沖突文件。
解決沖突,然后調(diào)用git add或git rm將解決后的文件暫存。
所有沖突解決后,git rebase --continue 提交更改。
刪除分支:git branch -d 分支名
刪除分支執(zhí)行g(shù)it branch -d 分支名
如果該分支沒有合并到主分支會報錯,可以用以下命令強(qiáng)制刪除git branch -D 分支名
刪除遠(yuǎn)程分支:git push origin :name
需要注意的是origin后面有空格
撤銷修改:git checkout -- file
對應(yīng)圖片操作
對于提交到分支的文件的操作步驟
1.新建本地倉庫,并且初始化
git init
2.添加文件到暫存區(qū)
git add -A //全部文件
3.提交文件
git commit -m "描述"
4.將遠(yuǎn)程信息拉取到本地(比如遠(yuǎn)程分支的信息,這步可以不做)
git fetch
5.查看分支信息(建立在第4步的基礎(chǔ)上)
git branch -r //所有遠(yuǎn)程分支信息
6.新建本地分支
git branch newBranch //newBranch 為分支名
7.切換到該分支
git checkout newBranch
8.關(guān)聯(lián)遠(yuǎn)程倉庫
git remote add origin git@github.com:jsformat/virus.git //我的遠(yuǎn)程倉庫
9.提交文件到該分支
git push origin
刪除遠(yuǎn)程分支文件或者文件夾
git rm -r --cached a/2.txt //刪除a目錄下的2.txt文件 刪除a目錄git rm -r --cached a
git commit -m "刪除a目錄下的2.txt文件"
git push