簡(jiǎn)介 :
Windows 10下搭建學(xué)習(xí)Git
下載:
https://gitforwindows.org/
安裝教程參考:
https://github.com/xiezongnan/Summarize/blob/master/git/Git_Setup.md

創(chuàng)建目錄和初始化本地庫(kù)
某個(gè)文件夾下:


git gui here 就是簡(jiǎn)單的圖形化界面操作

Git 基本概念

上圖每個(gè)部分的簡(jiǎn)要說(shuō)明
- 需要進(jìn)行版本控制的文件目錄叫做一個(gè)倉(cāng)庫(kù)
repository縮寫(xiě)repo,每個(gè)倉(cāng)庫(kù)可以簡(jiǎn)單理解成一個(gè)目錄就是上圖的Directory包含工作空間和Git的管理空間 - WorkSpace:需要通過(guò)Git進(jìn)行版本控制的目錄和文件,這些目錄和文件組成了工作空間,除了.git之外的都屬于工作區(qū)。
- .git:存放Git管理信息的目錄,初始化倉(cāng)庫(kù)的時(shí)候自動(dòng)創(chuàng)建。
- index/Stage:暫存區(qū),或者叫待提交更新區(qū),在提交進(jìn)入repo(倉(cāng)庫(kù))之前,我們可以把所有的更新放在暫存區(qū)。
- Stash:是一個(gè)工作狀態(tài)保存棧,用于保存/恢復(fù)WorkSpace中的臨時(shí)狀態(tài)。
- Local Repo:本地倉(cāng)庫(kù),一個(gè)存放在本地的版本庫(kù);HEAD只是當(dāng)前的開(kāi)發(fā)分支(branch)
.git說(shuō)明
它是位于工作區(qū)中的一個(gè)隱藏目錄,它里面保存了Git工作時(shí)需要存儲(chǔ)的相關(guān)信息。如果想從你的項(xiàng)目中移除git,但保留項(xiàng)目文件,只需要?jiǎng)h除.git文件夾即可

- config 文件包含了項(xiàng)目特有的配置選項(xiàng)
- description倉(cāng)庫(kù)的描述
- HEAD 文件指向當(dāng)前分支
- hooks 目錄保存了客戶(hù)端或服務(wù)端鉤子腳本。
- info 目錄保存了一份不希望在 .gitignore 文件中管理的忽略模式 (ignored patterns) 的全局可執(zhí)行文件
- objects 目錄存儲(chǔ)所有數(shù)據(jù)內(nèi)容
- refs 目錄存儲(chǔ)指向數(shù)據(jù) (分支) 的提交對(duì)象的指針,里面即有stash棧指針以及tag等
創(chuàng)建一個(gè)README.md內(nèi)容當(dāng)然為hello world

連接GitHub
本地倉(cāng)庫(kù)與遠(yuǎn)程倉(cāng)庫(kù)的傳輸是通過(guò)SSH加密的,首先創(chuàng)建SSK KEY

id_rsa是私鑰,不能泄露出去(請(qǐng)告訴我!?。?
id_rsa.pub是公鑰,可以放心地告訴任何人

在網(wǎng)站登陸GitHub賬號(hào)
找到settings

title填能夠提醒自己這是什么的公鑰

測(cè)試連接
ssh -T git@github.com

創(chuàng)建遠(yuǎn)程倉(cāng)庫(kù)并提交本地項(xiàng)目
將本地庫(kù)的master分支與遠(yuǎn)程庫(kù)的master分支建立聯(lián)系
后面就能看到自己所在的分支

Create a new repository賬號(hào)下新建一個(gè)demo倉(cāng)庫(kù)

首先檢查本地的庫(kù)有沒(méi)有已經(jīng)關(guān)聯(lián)的遠(yuǎn)程庫(kù),如果已經(jīng)有了可以刪除,或者可以重新建立一個(gè),別重名
git remote -v
WangGang@DESKTOP-PDK3N5G MINGW64 /d/Git/git_project/demo/.ssh (master)
$ git remote -v
顯然沒(méi)有
添加一個(gè)關(guān)聯(lián)
git remote add [shortname] [url]url是https或者ssh都可以

恭喜您關(guān)聯(lián)成功

將本地庫(kù)的內(nèi)容推送到遠(yuǎn)程倉(cāng)庫(kù)上
- 首先需要將本地庫(kù)文件夾下的文件都添加到本地庫(kù)暫存區(qū)中
執(zhí)行命令:$ git add .這個(gè)點(diǎn)就是代表目錄下的全部文件 - 再將本地暫存區(qū)的內(nèi)容提交到本地庫(kù)中
先設(shè)置git用戶(hù)名/郵箱,前面忘了 哈哈
$ git config user.name 'github用戶(hù)名'
$ git config user.email '郵箱'

可以使用
$ git config --list查看配置是否設(shè)置成功執(zhí)行命令:
$ git commit -m '第一次提交'
可以看見(jiàn)前面創(chuàng)建的README.md提交到了本地庫(kù)
- 最后將本地庫(kù)的內(nèi)容上傳到遠(yuǎn)程庫(kù)中
$ git push -u pb master命令后面簡(jiǎn)單介紹
pb是上面創(chuàng)建的遠(yuǎn)程主機(jī)名 master是本地分支名 -u是第一次推送加上的
好像第一次會(huì)彈出了登陸驗(yàn)證
下圖表示成功啦!?。?br>
再來(lái)看看網(wǎng)站上
用git push命令,實(shí)際上是把當(dāng)前分支master推送到遠(yuǎn)程;由于遠(yuǎn)程庫(kù)是空的,我們第一次推送master分支時(shí),加上了-u參數(shù),Git不但會(huì)把本地的master分支內(nèi)容推送的遠(yuǎn)程新的master分支,還會(huì)把本地的master分支和遠(yuǎn)程的master分支關(guān)聯(lián)起來(lái),在以后的推送或者拉取時(shí)就可以簡(jiǎn)化命令。
git push的一般形式為 git push <遠(yuǎn)程主機(jī)名> <本地分支名> <遠(yuǎn)程分支名>
例如 git push origin master:refs/for/master即是將本地的master分支推送到遠(yuǎn)程主機(jī)origin上的對(duì)應(yīng)master分支
origin 是遠(yuǎn)程主機(jī)名
第一個(gè)master是本地分支名
第二個(gè)master是遠(yuǎn)程分支名 (refs/for/是什么原因呢??等我去學(xué)學(xué))
如果遠(yuǎn)程分支被省略,git push origin master
如上則表示將本地分支推送到與之存在追蹤關(guān)系的遠(yuǎn)程分支(通常兩者同名),如果該遠(yuǎn)程分支不存在,則會(huì)被新建


