提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
git是一个开源的分布式版本控制系统,可以有效、高速的处理从小到非常大的项目版本管理。
版本控制:新版本、旧版本 新旧版本的迭代的版本控制工具
1. 在我们使用git时需要了解git的工作区域, 在git中分为三种区域分别是工作区,暂存区和仓库区
( 1 )工作区:顾名思义就是我们在日常工作时经常编辑代码的地方
( 2 )暂存区: 暂时存储修改过的或未修改的文件。
( 3 )仓库区:整合所有代码的地方最后确定的代码会保存到这里
2. 在使用git时需要先配置它(配置一般是保存在本地的)
( 1 )初始化配置 我们需要填写用户名和邮箱
例 :
git config --global user.name "user_name"
git config --global user.email "user_email"
3 .本地仓库和远程仓库
( 1 )在git中仓库分为本地仓库和远程仓库,本地仓库是在个人电脑上搭建的,远程仓库主要寄存在GitHub,gitee 前者是全球范围的平台,后者是国人自己搭建的
4.本地仓库的搭建
( 1 )创建本地仓库可以在我们的项目根目录中打开 Git Bash Here 在其中使用 git init 就会创建一个隐藏文件夹(.git )它就是我们使用git管理的依据
首先创建一个空文件夹
之后打开 Git Bash Here 在里面输入git init 完成初始化
接着打开文件查看里面的显示隐藏文件夹就会看到 .git
( 2 )还可以克隆远程仓库:使用git clone (地址) 直接将远程仓库中所有数据拷贝一份。使用前不要再初始化即 git init
也是先创建空文件夹
接着 输入 git clone (地址)这里我用的是ssh 大家也可以用https
之后就会打得到远程仓库里的全部内容
5. git 的基础命令
1. git add 文件名 //向暂存区输入单个文件
2. git add . //向暂存区输入全部文件
3. git status //查看提交后文件状态
4. git commit -m "这里添加描述" //将暂存区的文件提交到仓库区同时会产生一个版本号
5. git log //查看 git的提交历史记录
6. git reflog //查看从开始到现在全部的提交记录
7. git rest --hard [版本号] //回退到此版本号,也可以跳转未来版本
8. git rest --hard HEAD^ // 回退到上个版本
9. git rm // 删除文件
6. 在我们工作中不能所有的内容都有git保存于是就有了文件忽略
(1)在.git的同级目录下创建 .gitignore文件,注意:前面有一个.
(2)在文件中添加要忽略的文件名称或文件夹名
(1) /git-demo1/ 过滤整个文件夹
(2) *.txt 过滤所有.txt文件
(3) /git-demo1/a.html 过滤某个具体文件
7. 主分支和分支
主分支
git版本控制系统支持分支操作。使用分支意味着可以从开发主线上分离开来,然后在不影响主线的同时继续工作。默认只有一个分支为master主分支。这个主分支是在初始化仓库是系统默认创建的主分支用来保存和记录整个项目已完成的功能代码。
分支
在日常工作中不允许程序员直接在master 分支上修改代码,这样做的风险太高,容易导致整个项目崩溃。于是就衍生了分支
注:在我们创建分支时主分支中必须含有一些内容否则创建不了分支
1. git branch //查询所有分支
2. git branch 分支名 //创建分支
3. git checkout 分支名 //切换分支
4. git checkout -b 分支名 //相当于执行了两个命令 git branch 分支名 git checkout 分支名
5. git branch -D 分支名 //删除本地分支
6. git merge //git合并分支
8. 远程仓库
远程仓库一般基于一下三点
(1)github:github是一个基于git的代码托管平台,在国外,速度比较慢,在大陆的使用很受影响
(2)gitee:gitee是一个基于git的代码托管平台,国内使用频率较多
(3)公司自己部署,了解即可,强调不是前端人员部署的,使用步骤和命令都一样
我们要使用远程仓库平台首先要注册账号,之后在平台上创建远程仓库,链接两个仓库。将本地文件推送到远程仓库,克隆和同步远程仓库。与远程仓库相关的命令有
git remote add 把远程仓库地址添加到本地。使本地仓库和远程仓库产生关联
git remote -v 查看远程地址信息
git push
1、如果使用-u参数,则第2次及以后可以直接使用git push把本地推送到远程仓库
2、添加gitee的账号和密码,正确则正常推送
git clone 拷贝一个远程仓库到本地。(想要实现必须不能初始化本地)
git pull
当本地已有远程仓库,而远程仓库如果已经有更新,则可以使用此命令更新本地仓库。
例如:下班git push,早上上班 git pull
常见的远程仓库访问方法有https ssh访问等
要使用远程仓库首先要学会使用 github 或gitee这两个平台操作方法近乎一样。 我这里举例是使用Gitee。在平台创建仓库
9.https访问
Git 全局设置:
//登录gitee账户密码
git config --global user.name "YYX"
git config --global user.email "[email protected]"
git remote add origin (url) //将远程仓库地址添加到本地
2)将本地仓库数据推送到远程仓库
git push -u origin master
注意:origin为远程仓库的名称,可以自定义
3)拷贝一个远程仓库到本地
git clone https://gitee.com/lyt-top/vue-next-admin.git
4)git pull --rebase origin master 从远程服务器更新项目到本地仓库
git remote rm origin 删除远程仓库地址
86175@YYYYYY1 MINGW64 ~/Desktop/本地仓库
$ git init //我们初始化仓库
Initialized empty Git repository in C:/Users/86175/Desktop/本地仓库/.git/
86175@YYYYYY1 MINGW64 ~/Desktop/本地仓库 (master)
$ git remote add origin [email protected]:YYX1127/8.23--afternoon-third-case.git //绑定仓库
86175@YYYYYY1 MINGW64 ~/Desktop/本地仓库 (master)
$ git remote //查看
origin
86175@YYYYYY1 MINGW64 ~/Desktop/本地仓库 (master)
$ git remote -v //查看绑定地址
origin [email protected]:YYX1127/8.23--afternoon-third-case.git (fetch)
origin [email protected]:YYX1127/8.23--afternoon-third-case.git (push)
86175@YYYYYY1 MINGW64 ~/Desktop/本地仓库 (master)
$ touch 1.html //新建一个文件
86175@YYYYYY1 MINGW64 ~/Desktop/本地仓库 (master)
$ git add . //将文件提交到暂存区
86175@YYYYYY1 MINGW64 ~/Desktop/本地仓库 (master)
$ git commit -m "new" //将文件提交到本地仓库
[master (root-commit) 33b6080] new
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 1.html
86175@YYYYYY1 MINGW64 ~/Desktop/本地仓库 (master)
$ git push -u origin master //将本地提交到远程 (我这里错误是因为我远程仓库有这个文件了)
To gitee.com:YYX1127/8.23--afternoon-third-case.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'gitee.com:YYX1127/8.23--afternoon-third-case.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
86175@YYYYYY1 MINGW64 ~/Desktop/本地仓库 (master)
$
注意:
1)在使用pull命令从远程服务器拉去项目内容时,要保证本地仓库的版本低于远程服务器
2)运行 git pull 通常会从远程服务器上抓取数据并自动尝试合并到当前所在的分支。
10.ssh访问
传统方式访问远程仓库的问题:传统方式本地和远程传输,需重复输入gitee的账号和密码,较为繁琐。SSH好处:免登录身份认证、数据加密传输。而SSH实现本地仓库和gitee之间免登录的加密数据传输。更重要的原因是团队协同开发更加方便。
SSH组成: (1) id_rsa 私钥文件,存放于开发者的电脑中 (2) id_rsa.pub 公钥文件 。
生成密钥步骤:
1、打开Git Bash
2、执行 ssh-keygen -t rsa -b 4096 -C "[email protected]"
解释:生成公钥和密钥。特殊说明:会生成在C:\Users\用户名文件夹.ssh目录中。
t 指定密钥类型,默认是 rsa ,可以省略。
-C 设置注释文字,比如邮箱。
-f 指定密钥文件存储文件名,一般我们默认,让存储到默认路径以及默认文件名
它会要求输入Enter file in which to save the key (/home/stephenzhou/.ssh/id_rsa)
这里是生成的sshkey文件名,我们可以回车使用默认文件名
除此之外还会让你输入
Created directory '/home/stephenzhou/.ssh'.
Enter passphrase (empty for no passphrase):
这个密码会在让你push提交时候要输入的,除了git登录密码,还要输入这个密码,直接回车则空密码,这里我们直接回车
接着会让你在此输入密码,验证这里依旧回车
Enter same passphrase again:
生成之后去生成位置找到你所生成的公钥和密钥:
第一个是私钥 第二个是公钥
之后将公钥配置如图位置
注:
1)若需要通过https的方式访问别人的public开源库,则可以通过输入用户名、密码的方式来完成提交(但一定要保证本地账户凭据与远程一致,若不一致,则使用下面步骤来修改)。
步骤:控制面板-用户账户-管理Windows 凭据-修改普通凭据即可
2)若使用SSH方式来提交仓库,则需要在账户中配置公钥(一个公钥对应一个私钥,若多人,需添加多个公钥)
Git:Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。分布式版本控制系统:没有“中央服务器”,每个人的电脑上都是一个完整的版本库,联网开发不是必须的。但两两开发者之间肯定不会以qq或U盘形式传送,也有一台充当“中央服务器”的电脑(gitee和github)。此服务器的作用仅是用来方便“交换”各开发之间的修改。 这只是个人总结的可能有些片面希望不要介意