git 了解与使用
git是什么?
git是一个软件,可以帮助我们对文档进行版本管理。能将文档各个时间的状态记录下来,并且可恢复。 (git仓库也就是我们平时说的本地仓库)
都是先将工作目录提交到暂存区再提交到工作目录。
在提交项目状态时,提交人员的信息也会被提交。
Git的使用:
在任意一个项目下打开Git Bush Here都可以进行配置(因为这是Git的配置,配置一次就好了,所有项目打开Git Bush Here输入git config --list都可以看到之前的配置信息——此台电脑已经配置)
实操:
新建目录git-demo,新建html文件,打开项目文件所在位置,打开Git Bush Here输入
1 git init
翻译一下:初始化了一个空的Git仓库在C盘的asd项目文件夹下的git-demo文件夹里的.git文件夹里(这个文件是隐藏文件,要把隐藏文件显示出来才能看得见)
在进行第二步之前先看看此时状态:git status:
可以看到Untracked files,说明这个文件没有被跟踪(没有被git管理),也就是没有放在暂存区。所以进行第二步。
2 git add a.html然后再看看状态:
可以看到已经放到了暂存区。
3提交: git commit -m 提交信息
可以看到提交成功且有一些说明:(1 file changed : 一个文件变化)
过程:
1 git init——初始化(然后看看状态,有谁没有被管理,也就是没有放在缓存区)
2 git add 文件——把没有被管理的文件放到暂存区
3 git commit -m 提交信息——把暂存区文件放到git仓库
4 git log——看看提交记录(有ID,作者,时间,提交信息)
关于暂存区的三个操作:(前提是没有用)
1从暂存区恢复某个文件 ,前提是那个文件在暂存区:git checkout 文件名
比如上面的a.html:
改一下内容:
输入git checkout a.html,可以看到又恢复了:
2从暂存区删除文件:
先新建b.html
显示untracked files b.html说明b.html没有被跟踪,也就是说b.html在这个项目内但是没有在暂存区。
3将暂存区与工作目录恢复到某次提交时的样子:
例如:下图的两个文件都是已经上传到git仓库中的(第一次提交了a.html,第二次提交了b.html)
然后现在要把目录和暂存区都恢复到第一次提交到仓库时的样子,输入git reset --hard 第一次提交时的ID(就是commit)
然后看一下工作目录:
完成!
分支命令:
在新开发某个功能时要新建分支。
git checkout 其实有两个用法:后面跟的是.html文件就是恢复文件,跟的是一个名字而已就是切换分支。
重点:
1 在谁的上面创键的分支就是谁的(所以每次创建分支时一定要注意你要在哪个分支上创建分支,如果你接下来要创建的都是主线的分支,那么你每次都要
git checkout master 切换回主分支)
2 在切换分支时一定要提交到仓库(不然会发现不对,明明是个分支文件,切换了分支后还能看见)
比如:现在要新增一个新页面c.html,首先先建立一个新分支(这个新建的html就属于新分支)
1 git branch 分支名 ,
2 git branch (查看当前分支)
3 git checkout 分支名(切换到刚才新建的分支)
4 建立c.html(也就是说c.html现在在c分支上)
5 git add c.html
6 git commit -m 提交信息
完成!
此时你可以切换到之前的分支,发现c.html时没有的,他只在最后一个上面。
(这也符合逻辑,在开发分支上创建的文件,主分支不应该看到他)
在合并完分支以后以后原来的分支仍然存在,可以切换到原来的分支上继续开发。(合理)
删除分支:git branch -d 分支名
没有合并的分支不能删除,怕你开发了半天,误删了(合理)
但是可以强制删除 git branch -D 分支名
分支注意事项总结:
1 在谁的上面创键的分支就是谁的
2 在切换分支时一定要提交到仓库
3 没有合并的分支不能删除
git stash 与 git stash pop(相当于剪切板)
因为上面说了:在切换分支时一定要提交到仓库,
但是存在一种情况:你在写新功能时,老板叫你改之前功能的BUG,这时你又要切换分支,这是你可以使用git stash命令。
步骤:
1 git add 文件名(先加到暂存区)
2 git stash
3 git branch 你想要转到的分支名
4 git branch 刚才的分支 (一定一定要切换回来)
5 git stash pop (恢复)
如何将项目传到github?
新建项目,新建文件
一定是要在code这个目录下操作:git init , git add a.html , git commit -m 提交信息 (上传到本地仓库)
到github上新建项目,登入后直接复制网址: https://github.com/new (两个地方要写:项目名称(不能重复),选择public )
创建成功后如图:
把HTTP链接复制一下,在命令行输入git push 复制下来的链接(用鼠标右键粘贴) 分支名字:
刷新页面,完成!
为项目地址名字改名:git remote add 新名字 复制下来的链接
下次推送直接就可以:(这里最好最好直接写git push -u origin master , 方面以后直接用git push 就内推送)
因为此时刚提交完工作目录是干净的,你可以在文件中随意改变一下内容再使用git add a.html , git commit -m 提交信息 , git push orign master 这几个命令实验一下,实践:
(这个改名字的命令放上面下面都一样的)
补充:我们发现第二次提交是没有输入用户名和密码的,因为window10帮我们记下来了。
保存的位置:
1
2
3
4
5
如何只使用git push 就能提交到远程仓库?
在你改完名之后直接 git push -u 新名字 分支名
总结:刚开始直接用:这个就好,免得搞晕。
克隆:
新建一个文件:git clone 项目地址
拉取:git pull 远程仓库地址 分支名称 (不需要验证身份)
上传:git push 远程仓库地址 分支名称 (需要在项目创建者在github上开通上传权限)
git pull 命令与 git clone命令的区别:
git pull命令只是拉去远程仓库中最新的版本,所以git pull是在已经有本地仓库时进行的
git clone命令时完全克隆远程仓库,是在没有本地仓库时进行的,在克隆完就不需要用git clone
忽略文件(不让一些文件上传):项目中新建名字以 . 开头的文件,例如 .gitignore文件夹 ,里面写上要忽略上传的文件夹与文件就行了。
增加项目说明文件:
在项目中新建.md文件,输入你要显示的内容就行了。
总结:
一个新项目,
1 比如先建a.html文件,先提交git add a.html ,git commit -m 第一次
2 新建新分支 git branch dier ,切换分支 git checkout dier ,新建文件b.html ,提交 git add b.html ,git commit -m 第二次,切换回主分支合并dier这个分支: git checkout master ,git merge dier
3 此时已经在master分支上,新建分支git branch disan,切换分支 git checkout disan,新建文件c.html ,提交 git add c.html,git commit -m 第三次,切回主分支并合并disan支:
git checkout master,git merge disan
(此时主分支上有a,b,c 文件,dier分支上有a,b文件, disan分支上有 a,b,c文件)
最简单