Git的安装和使用
什么是Git?
- Git是一款源代码管理工具(版本控制工具)
- 我们写的代码需要使用Git进行管理。
- 源代码有必要管理起吗?
有必要,因为人工的去处理不同的版本,做相应备份会很麻烦。 - svn,vss,vcs… git
- Git是linux之父当年为了维护linux—linus之前也是手动维护合并把文件发给Linus
linus自己写了一个版本管理的工具(Git)
Git安装
到官网下载相应 的安装包,下载完成后双击安装包,弹出如下窗口,一直下一步,
安装完成后,在电脑任意位置,按右键出现的菜单中有Git GUI Here ,Git Bash Here说明git安装成功.
使用git进行源代码管理
- 初始化Git仓储/(仓库)
这个仓库会存放,git对我们项目代码进行备份的文件
-
在项目目录右键点击 git bash,
-
弹出命令窗口, 输入命令:
git init
回车
会看到test目录出现一个.git文件夹,说明初始化成功
- 自报家门
- 就是在git中设置当前使用的用户是谁
- 每一次备份都会把当前备份者的信息存储起来
- 命令:
- 配置用户名:
git config --global user.name "by"
- 配置邮箱:
git config --global user.email "[email protected]"
- 配置用户名:
- 把代码存储到.git仓储中
- 1.把代码放到仓储的门口
-
git add ./readme.md
所指定的当前目录下的readme.md文件放到大门口 -
git add ./
把所有的修改的文件添加到大门口
-
- 2.把仓储门口的代码放到里面的房间中去
git commit -m "这是对这次添加的东西的说明"
可以一次性把我们修改的代码放到房间里(版本库)
-
git commit --all -m "一些说明"
- –all 表示是把所有修改的文件提交到版本库
查看当前的状态
- 可以用来查看当前代码有没有被放到仓储中去
- 命令:
git status
出现以下结果说明在门口的代码已经放到仓库中去了
查看日志
-
git log
查看历史提交的日志 -
git log --oneline
可以看到简洁版的日志
提交代码到github(当作git服务器来用)
GitHub https://github.com
- 不是git,只是一个网站
- 只不过这个网站提供了允许别通过git上传代码的功能
- 需要注册账号
- 在github中创建自己的仓库
删除仓库:
点击settings后,来到页面的最下面会看到Delete this repository按钮
相关命令
上传:push
-
git push [地址] master
-
示例:
git push https://github.com/byebye36/mybook.git master master
-
会把当前分支的内容上传到远程的master分支上
下载: pull
-
git pull [地址] master
-
示例:
git pull https://github.com/byebye36/mybook.git master
-
会把远程分支的数据得到:(注意本地-要初始一个仓储!)
clone:
-
git clone [地址]
-
会得到远程仓储相同的数据,如果多次执行会覆盖本地内容。
push和pull时的简写方式
//将服务器上的地址https://github.com/byebye36/mybook.git设置成一个变量,变量名为origin.设置完后,push和pull可以简写(注意:只在设置的当前的项目有效)git remote add origin https://github.com/byebye36/mybook.git
//上传git push origin master
//下载git pull origin master
当我们在push时,加上-u参数,git push origin -u master
那么在下一次push时,我们只需要写上git push
就能上传我们的代码。(加上-u之后,git会把当前分支与远程的指定的分支进行关联。)
注意:
同一项目,在进行push和pull操作时,先pull再push.
先pull的话,如果服务器的版本和本地不同,会有冲突,我们可以先把冲突解决,再把最新版本的上传(push)到服务器.
其他命令
回退到指定的版本
-
git reset --hard Head~0
- 表示回退到上一次代码提交时的状态
-
git reset --hard Head~1
- 表示回退到上上次代码提交时的状态
通过版本号回退
-
git reset --hard [版本号]
- 可以通过版本号精确的回退到某一次提交时的状态
如何知道版本号?通过查看日志可以看到,比如c4928c6
-
git reflog
- 可以看到每一次切换版本的记录:可以看到所有提交的版本号
分支
git branch
可以查看当前有哪些分支
- 默认是有一个主分支master
创建分支
-
git branch dev
- 创建了一个dev分支
- 在刚创建时dev分支里的东西和master分支里的东西是一样的
切换分支
-
git checkout dev
- 切换到指定的分支,这里的切换到名为dev的分支
合并分支
-
git merge dev
- 合并分支内容,把当前分支与指定的分支(dev),进行合并
- 当前分支指的是
git branch
命令输出的前面有*号的分支
- 合并时如果有冲突,需要手动去处理,处理后还需要再提交一次.
git中的忽略文件
- .gitignore,在这个文件中可以设置要被忽略的文件或者目录。
- 被忽略的文件不会被提交仓储里去.
- 在.gitignore中可以书写要被忽略的文件的路径,以/开头,
一行写一个路径,这些路径所对应的文件都会被忽略,
不会被提交到仓储中- 写法
-
/.idea
会忽略.idea文件 -
/js
会忽略js目录里的所有文件 -
/js/*.js
会忽略js目录下所有js文件
-
- 写法