简介 :
Windows 10下搭建学习Git
下载:
https://gitforwindows.org/
安装教程参考:
https://github.com/xiezongnan/Summarize/blob/master/git/Git_Setup.md
创建目录和初始化本地库
某个文件夹下:
git gui here 就是简单的图形化界面操作
初始化
Git 基本概念
1.png上图每个部分的简要说明
- 需要进行版本控制的文件目录叫做一个仓库
repository
缩写repo
,每个仓库可以简单理解成一个目录就是上图的Directory
包含工作空间和Git的管理空间 - WorkSpace:需要通过Git进行版本控制的目录和文件,这些目录和文件组成了工作空间,除了.git之外的都属于工作区。
- .git:存放Git管理信息的目录,初始化仓库的时候自动创建。
- index/Stage:暂存区,或者叫待提交更新区,在提交进入repo(仓库)之前,我们可以把所有的更新放在暂存区。
- Stash:是一个工作状态保存栈,用于保存/恢复WorkSpace中的临时状态。
- Local Repo:本地仓库,一个存放在本地的版本库;HEAD只是当前的开发分支(branch)
.git说明
它是位于工作区中的一个隐藏目录,它里面保存了Git工作时需要存储的相关信息。如果想从你的项目中移除git,但保留项目文件,只需要删除.git文件夹即可
树形结构图
- config 文件包含了项目特有的配置选项
- description仓库的描述
- HEAD 文件指向当前分支
- hooks 目录保存了客户端或服务端钩子脚本。
- info 目录保存了一份不希望在 .gitignore 文件中管理的忽略模式 (ignored patterns) 的全局可执行文件
- objects 目录存储所有数据内容
- refs 目录存储指向数据 (分支) 的提交对象的指针,里面即有stash栈指针以及tag等
创建一个README.md内容当然为hello world
创建文件README.md
连接GitHub
本地仓库与远程仓库的传输是通过SSH加密的,首先创建SSK KEY
id_rsa是私钥,不能泄露出去(请告诉我!!!)
id_rsa.pub是公钥,可以放心地告诉任何人
在网站登陆GitHub账号
找到settings
title填能够提醒自己这是什么的公钥
测试连接
ssh -T git@github.com
创建远程仓库并提交本地项目
将本地库的master分支与远程库的master分支建立联系
后面就能看到自己所在的分支
Create a new repository账号下新建一个demo仓库
首先检查本地的库有没有已经关联的远程库,如果已经有了可以删除,或者可以重新建立一个,别重名
git remote -v
WangGang@DESKTOP-PDK3N5G MINGW64 /d/Git/git_project/demo/.ssh (master)
$ git remote -v
显然没有
添加一个关联
git remote add [shortname] [url]
url是https或者ssh都可以
恭喜您关联成功
将本地库的内容推送到远程仓库上
- 首先需要将本地库文件夹下的文件都添加到本地库暂存区中
执行命令:$ git add .
这个点就是代表目录下的全部文件 - 再将本地暂存区的内容提交到本地库中
先设置git用户名/邮箱,前面忘了 哈哈
$ git config user.name 'github用户名'
$ git config user.email '邮箱'
可以使用
$ git config --list
查看配置是否设置成功执行命令:
$ git commit -m '第一次提交'
可以看见前面创建的README.md提交到了本地库
- 最后将本地库的内容上传到远程库中
$ git push -u pb master
命令后面简单介绍
pb是上面创建的远程主机名 master是本地分支名 -u是第一次推送加上的
好像第一次会弹出了登陆验证
下图表示成功啦!!!
再来看看网站上
用git push命令,实际上是把当前分支master推送到远程;由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
git push
的一般形式为 git push <远程主机名> <本地分支名> <远程分支名>
例如 git push origin master:refs/for/master即是将本地的master分支推送到远程主机origin上的对应master分支
origin 是远程主机名
第一个master是本地分支名
第二个master是远程分支名 (refs/for/是什么原因呢??等我去学学)
如果远程分支被省略,git push origin master
如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建
网友评论