Git 与 Github 最简单的使用
- Git是分布式版本控制系统(可以理解为文件管理拓展工具)
- github一个在线文件托管系统(可以理解为一个在线云盘)
准备工作,在git官网下载git软件件,安装git软件,以windows.为例,下载好文件打开,只需一路next就ok
到github官网注册github账号;注册好的页面差不多这样;
点 Start a project,第一次打开,提示需要验证你的邮箱,也就是注册时的邮箱,验证完邮箱后,新建一个project
填好name 我这里就叫origin好了,一定要点上下面的复选框
这边我建了一个origin名字的project,也就是常说的一个库;
然后打开clone or download 倒三角复制那行url.后面git要用到很关键;
在这个库里面,我们也有新建文件,上传文件,下载文件;等等功能,也就是你不用git,直接将你的电脑本地项目文件批量传送到github保存,也是可以的,同样起到分享与备份的作用,但如果本地文件太多修改太频繁的话,显然不太方便;
- 好了,开始使用git了;第一步在电脑中新建一个文件夹;这里,我以l:/origin文件夹为例
- 打开l:/origin文件夹,鼠标右键,打开git bash here;
- 输入命令
git clone https://github.com/almslfniswd/origin.git 这个地址就是你上一步所提制的地址,根据每人的账号情况修改
git clone(命令即是从github上下载一个库到本地) 你下载好这个库到本地,你的本地文件夹就会多出一个origin文件夹(你之前在github建立的project名);为什么这么做?因为git从github下载,是不需要任何配制的, 你下载下来后,git就会自动帮你生成配制文件,也就是你的git已经配制好了,之前的在线库origin已经是本地库origin
现在可以直接使用你的git,当然本地使用已经下载已经没有问题了,那么在本地修改,与github库同步怎么办?也就是在我本地origin下做的项目怎么同步到github,之前已经说过,可以直接在github网站上传,但这不太方便,现在用git命令行上传同步本地库到github
我们在刚下下来的origin文件夹下新建一个text.txt文件;在文件夹下右键git Bash here 打开命令窗口(注意一定是要在origin目录里面打开,之前是在d:vs目录,现在是对origin的库进行操作,所以一定要进入origin文件夹内)
$git add text.txt //此时没有任何反映
$git commit -m "新建了一个文件"
//此时会有一个错误提示,大体内容是让你告诉他你是谁,这时命令窗口会有命令提示,
git config --global user.email "userEmail@qq.com"
git config --global user.name "Name"
照抄一遍,把,userEmail@qq.com
,与Name
改成你github账户名即可;一行一确定之后再输入一次
$git commit -m "新建了一个文件"
- 命令解释
- git add text.txt 是将text.txt文件添加到库缓冲区
- git commit 是将缓冲区文件提交到git本地库核心区 -m 为提示文本,也就是你想对这个文件的改动说明
现在可以同步到github了输入命令
git push
- 将本地库核心区域未同步的内容同步到github上,当然同步在github上也是在github的origin文件夹内
- 好了回到github网页看看,是不是已经多出了一个text.txt文件呢;
- 提示,上文件设置email与name 的命令行 --global意思,也就是设置一次永久有效
以上就是在github新建库在本地修改上传同步的方法,但如果是以前已经写好的项目,要保存到github,就得用以下步骤!
在github 新建工程
一定不能打勾,名字任意可以与本地文件夹不同名,点创建
之后网站上就会出现这个页面,没错,很贴心
- 在要上传到github的项目文件夹上,右键打开,git Bash here 照着提示命令一行一行抄就是了(每个人生成的不一样,不是按我这个抄哦,是你的提示页面上的内容)
- 注意的是,git add README.md 可以改成 git add 你想上传到文件名,多文件 可以用git add . 传送当前目录全部文件
- 这样你的本地项目也就与github 我这里是text项目同步了,如果有修改,下次同步,只需,将修改部分,git add 修改部份,git commit -m "修改说明" , git push 上传同步就好了
最后,说一下git push 命令吧
网上千篇一律全是这种解释:()
然而github 官方帮助文档确是,这么说的
git push 远程主机名 本地分支名 : 远程分支重名命 git push origin master : remaster 没错,上传文件后,将本地的分支名重命名为remaster ,也就是本地库的分支名(理解成总文件夹名),在github上会给重命名成最后一个参数,秒懂,在没看到帮助文档之前,查git push ,那一个绕口令式的解释说明.....我是蒙了
再说一下,ssh-keygen 吧
这个只是git连接github提供的一种连接方式之一,连接方式有url.ssh.file.等等,有兴趣的可以去查,但是看了很多教程,都是要用ssh,设置密钳,然而,ssh的连接方式只是给加了一个密码,用哈希算法,然而,很多教程都以为是必选项.更恐怖的是,在设置密码那一步确又都解释说,不用设置密码直接下一步,那你用这一步有什么用,不是画蛇添足,密码确实没什么用,本身就是个分享公开的平台;所以没有特殊要求就不用去折腾,那个ssh哈希密码了
<--Git 详细说明-->
what is git? (什么是git?)
- version control system (vcs) for tracking changes in computer files 版本控制系统(vcs),用于跟踪计算机文件的变化
- distributed version control 分布式版本控制
- coordinates work between multiple developers 协调多个开发者之间的工作
- who made what changes and when 谁做了什么变化和什么时候
- revert back at any time 随时恢复
- local & remotee repos 本地和远程协作
concepts of git (git的概念)
- keeps track of code history 跟踪代码历史
- takes "snapshots" of your files 需要的文件“快照”
- you decide when to take a snapshot by making a "commit" 你来决定什么时候提交快照通过“commit”
- you can visit any snapshot at any time 您可以随时访问任何快照
- you can stage files before committing 提交前你能为文件打索引
basic commands
$git init //initialize local git repository //初始化本地的git仓库
$git add <file> //add File(s) To index //添加文件索引
$git status //check status of working tree //检查工作树的状态
$git commit //commit changes in index //在索引中提交更改
$git push //push to remote repository //推送到远程存储库
$git pull //pull latest from remote repository //从远程存储库中取得最新的
$git clone //clone repository into A new directory //将存储库克隆到新的目录中
常用命令:
$git add 文件全名 (可多个文件) 添加单文件索引
$git add *.后缀名 添加指定后缀名文件索引
$git add . 添加全部文件索引
<--指定文件忽略添加索引-->
$touch .gitignore
在当前文件夹创建.gitignore文件(可用任何添加文件的方式创建)
在文件中添加需要忽略添加索引的文件 例如:
log.txt //忽略日志文件
*.html //忽略所有html文件
/文件夹名 //忽略指定文件夹所有文件
$git rm //删除索引命令(单独使用列出附加参数提示)
常用附加参数
--cached 文件名 //删除指定文件索引
-f 文件名 //删除文件以及文件索引
-r //可选附加参数支持递归删除即可对整个文件夹操作,
示例: $git --cached -r 文件夹名 //删除指定文件夹所有文件索引
$git -f -r 文件夹名 //删除指定文件夹所有文件
&git reset HEAD 文件名(或)文件夹名
HEAD指针指向最后一次被操作的索引//此命令可设置HEAD指向指定索引
$git checkout -- 文件名 (或) 文件夹名
根据文件索引恢复文件//根据文件索引恢复文件夹所有打过索引的文件(对文件夹新加文件示加索引不作处理)
例如:文件index.html: 经过修改后发布发现修改版有问题要回到上一个版本(保证已通过$git add index.html保存文件索引),此时用$git checkout -- index.html
$git branch //查看分支 (默认主分支名master)
$git branch 新分支名 //创建新分支
$git checkout 分支名 //中转至分支(也可用快捷命令$git checkout -b 分支名 //创建并跳转至新分支)
$git merge 分支名 //合并分支到主分支
$git branch -d 分支名 //删除分支
有了以上git与github知识,基本版本管理已经够用了;另外git不一定要与github结合使用,也可单独本机使用或局域网内使用,一经上传github默认是公开开放的,要建私人库是要交钱的,所以也可以自己搭建服务端配合git使用;