版本管理工具使用之git

git简介

git是分布式版本管理工具,所以git支持离线工作。它有如下特点:
1.分布式版本控制
2.多个开发人员协调工作
3.有效监听谁做的修改
4.本地及远程操作

Git复杂概念多,SVN简单易上手。所有同时掌握 Git 和 SVN 的开发者都必须承认,Git 的命令实在太多了,日常工作需要掌握add,commit,status,fetch,push,rebase等,若要熟练掌握,还必须掌握rebase和merge的区别,fetch和pull的区别等,除此之外,还有cherry-pick,submodule,stash等功能,仅是这些名词听着都很绕。
在易用性这方面,SVN 会好得多,简单易上手,对新手很友好。但是从另外一方面看,Git 命令多意味着功能多,若我们能掌握大部分 Git 的功能,体会到其中的奥妙,会发现再也回不去 SVN 的时代了。

SSH key

步骤1. 首先需要检查你电脑是否已经有 SSH key

cd ~/.ssh
ls

.ssh表示ssh文件是个隐藏文件
查看是否存在 id_rsa.pub 或 id_dsa.pub 文件,如果文件已经存在,那么可以跳过步骤2,直接进入步骤3。

步骤2. 创建一个 SSH key

ssh-keygen -t rsa -C "your_email@example.com"

-t 指定密钥类型,默认是 rsa ,可以省略。
-C 设置注释文字,比如邮箱。
-f 指定密钥文件存储文件名。

以上代码省略了 -f 参数,因此,运行上面那条命令后会让你输入一个文件名,用于保存刚才生成的 SSH key :
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]
当然,你也可以不输入文件名,使用默认文件名(推荐),那么就会生成 id_rsa 和 id_rsa.pub 两个秘钥文件。

接着又会提示你输入两次密码(该密码是你push文件的时候要输入的密码,而不是github管理者的密码),

当然,你也可以不输入密码,直接按回车。那么push的时候就不需要输入密码,直接提交到github上了:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

接下来,就会显示如下提示信息:
Your identification has been saved in /c/Users/you/.ssh/id_rsa.
Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub.
The key fingerprint is:
01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com
当你看到上面这段代码的时候,那就说明SSH key 已经创建成功,你只需要添加到github的SSH key上就可以了。

步骤3.添加你的 SSH key 到 github上面去
a、首先你需要拷贝 id_rsa.pub 文件的内容,使用用编辑器打开文件,复制内容,(注意仅复制文本,不能多空格或者回车):

gedit ~/.ssh/id_rsa.pub

b、登录你的github账号,从右上角的设置Settings 进入,然后点击Personal setting 中的SSH and GPG keys,点击New SSH key,把复制的 SSH key 代码粘贴到对应的输入框中,记得 SSH key 代码的前后不要留有空格或者回车。输入别名,默认使用邮箱。

步骤4.测试一下该SSH key
在git Bash 中输入以下代码:

ssh -T git@github.com

当你输入以上代码时,会有一段警告代码,如:
The authenticity of host ‘github.com (207.97.227.239)’ can’t be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?

这是正常的,你输入 yes 回车既可。如果你创建 SSH key 的时候设置了密码,接下来就会提示你输入密码,如:
Enter passphrase for key ‘/c/Users/Administrator/.ssh/id_rsa’:

当然如果你密码输错了,会再要求你输入,知道对了为止。
注意:输入密码时如果输错一个字就会不正确,使用删除键是无法更正的。
密码正确后你会看到下面这段话:
Hi #######! You’ve successfully authenticated, but GitHub does notprovide shell access.
这时表示配置成功,这时就可以在本地通过SSH的方式去clone或fetch等了。

SSH与HTTP区别

1.clone项目:使用ssh方式时,首先你必须是该项目的管理者或拥有者,并且需要配置个人的ssh key。而对于使用https方式来讲,就没有这些要求。

2.push:在使用ssh方式时,是不需要验证用户名和密码,如果你在配置ssh key时设置了密码,则仅需要验证配对密码。而对于使用https方式来讲,每次push都需要验证用户名和密码。

安装Git客户端

一般我们工作的电脑都是Windows系统,要使用git首先要进行安装。从git官网下载后安装即可,下面是下载链接:
1.Mac安装git
http://git-scm.com/download/mac
2.Windows安装git
http://git-scm.com/download/win

安装成功之后,可以在开始菜单里面找到git:
在这里插入图片描述
或者在桌面右键,也可以看到:
在这里插入图片描述
其中GUI为用户界面模式,Bash为命令行模式,这里就以Bash为例子介绍git的基本使用方法(其实相比于GUI,个人觉得Bash更容易学习理解)。

Git的使用

1.安装好git之后,由于git是分布式管理工具,可以多个开发人员协调工作,所以我们先要在本地设置用户名name和邮箱email以作为标识,设置账户(需要和github账户设置一致),name和email地址是你在提交commit时的签名。设置方法是桌面右键然后点击Git Bash Here配置名字和邮箱信息,在命令行里输入以下命令:
git config --global user.name xxx
git config --global user.email xxx@foxmail.com
如下图我是这样设置信息:
在这里插入图片描述
注意:git config后面使用了参数–global参数,表明你这台机器上所有的Git仓库都会使用这个配置,当然也可以使用git config命令不带–global参数来对某个仓库设置不同的name和email,也就是说你也可以对某个仓库指定不同的用户名和邮箱,根据个人情况设置。
查看配置信息可以用命令git config --list 如果有配置过出现的列表信息里会包含如下所示信息:
user.name=xxx(用户名)
user.email=xxx@foxmail.com(邮箱)

2.git的工作原理图解
在这里插入图片描述

3.git常用命令
git虽然命令多,但常用的有如下这些:
git init 初始化本地git仓库,创建git本地仓库
git add . 将工作区所有文件添加到暂存区
git add < file-name > 将指定文件添加到暂存区
git commit -m ‘备注’ 将暂存区的文件提交到本地仓库,备注必须要有
git status 查看仓库当前的状态,文件是否有被修改过,一般来说会显示需要提交的文件(uncommited)和未追踪的文件(untracked)uncommited:已有的,刚被修改尚未提交的
untracked:原先没有的,新建的

git log 显示从最近到最远的提交日志历史记录
git reflog 查看所以操作记录(包括commit 和reset操作以及已经被删除的commit记录)
git reste -hard HEAD^ 回退到上一个版本(HEAD代码当前版本,HEAD代表上一个版本,HEAD代表上上个版本,HEAD100代表上100个版本)
git reset -hard < commit id> 回退到指定版本号的版本
git diff 查看工作区域内容和暂存区域内容之间的差异
git diff --cached 比较暂存区和本地仓库之间的差异
git diff HEAD 比较工作区和本地仓库最新版本的区别
git diff < commit id> 比较工作区和指定版本的之间的差异
git diff < commit id> < commit id> 比较两个版本之间的差异
git rm -r --cached < file-name> 删除远程仓库里制定的文件
git rm < file-name> 从版本库删除指定文件
git branch < branch-name> 创建新分支
git checkout < branch-name> 切换到指定分支

git checkout -b < branch-name> 创建并切换分支
git branch 查看本地所有分支
git branch -r 查看远程所有分支
git merge < branch-name> 合并指定分支的内容到当前分支
git merge --no–ff < branch-name> --no-ff 表示禁用fast forward合并,用普通模式进行分支合并,fast forward合并看不出曾经做过合并,普通模式可以。
git branch -d < branch-name> 删除合并后的本地分支
git branch -D < branch-name> 强制删除本地分支
git push origin --delete < branch-name> 删除远程分支

git remote 查看远程仓库的信息
git remote -v 查看远程仓库的详细信息
git remote add origin git@github.com:xxxxxxx.git 将本地仓库与远程仓库关联起来
git push -u origin master 新建远程仓库并第一次推送 master 分支时,加上 -u 参数,以后有内容了就不用加参数u
git push origin < branch-name> 推送分支到远程仓库的指定分支上
git pull 拉取远程仓库的代码
git config --global alias.sta status 配置status的别名为sta
git clone [url] 从远程仓库拷贝数据,如果你需要与他人合作一个项目,或者想要复制一个项目,看看代码,你就可以使用 git clone 拷贝克隆一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。

git commit提交规范

代码提交信息的说明,能够使项目在后期协作以及Bug处理时更加容易理解。
【1】commit message格式
在这里插入图片描述
【2】type 用于说明 commit 的类别,只允许使用下面7个标识。
feat:新功能(feature)
fix:修补bug
docs:文档(documentation)
style:格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动
【3】subject 是commit代码的简短描述,末尾不加标点符号

pre-commit用法说明

项目要使用git进行代码提交时,使用叫pre-commit的git钩子,在调用git commit 命令时自动执行某些脚本检测代码,若检测出错,则阻止commit代码,也就无法push,保证了出错代码只在我们本地,不会把问题提交到远程仓库。

安装husky

npm i husky -save-dev

安装list-staged

npm i lint-staged husky -save-dev

package.json文件

安装好之后,会自动在项目.git目录生成一个hock,这个hock会读取package.json中的内容:

“husky”: {
“hooks”: {
“pre-commit”: “npm run lint-staged”
}
},
“lint-staged”: {
/*.js": “eslint --ext .js”,
"
/*.vue”: “eslint --ext .vue”
}
测试
首先,故意触犯eslint报错:
在这里插入图片描述
再执行git commit提交代码
在这里插入图片描述
在这里插入图片描述
上面代码提交失败说明配置成功生效,每次执行git commit命令,都会自动调用package.json中的precommit命令,在本项目中precommit命令就会执行eslint的代码校验,若校验失败,则无法将代码commit,避免不规范代码提交到远程仓库,特别是在多人协作中能够强制规范代码

git clone 失败的原因

有时候我们刚刚进入一家公司,从远程仓库克隆一个项目到本地,可能会遇到克隆失败的情况。
remote: The project you were looking for could not be found.
fatal:repository …… not found

这种情况有可能是公司之前的前端遗留的凭据你没有改过来,我们可以尝试打开控制面板修改普通凭据。比如我们在git配置的时候,使用的username是xiaoming 那么我们可以把用户名改为xiaoming.
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
studio是一个强大的版本管理工具,可以帮助团队成员有效地协作开发项目。git是studio常用的版本管理工具之一,可以帮助团队协调开发过程,追踪版本变化,并方便地进行代码的合并和回滚。 下面是使用git进行版本管理的图文教程: 1. 安装Git和配置环境:首先,需要下载并安装Git工具。在安装完成后,打开终端(或命令行界面)并运行以下命令来配置Git: `git config --global user.name "你的姓名"` `git config --global user.email "你的邮箱"` 2. 创建本地代码仓库:可以在Studio中创建一个新的项目,然后在项目根目录下右键点击选择“Git” -> “Initialize Repository”,这将把项目变成一个Git仓库。 3. 将代码添加到仓库:在Studio中,在代码编辑区右键点击选择“Git” -> “Add”以将所有文件添加到仓库中。 4. 提交代码:在Studio中,右键点击代码编辑区选择“Git” -> “Commit”以提交已添加到仓库的代码。在弹出的对话框中,输入提交的注释,并点击提交按钮。 5. 查看提交历史:在Studio中,右键点击代码编辑区选择“Git” -> “Show History”以查看提交的历史记录。可以看到每个提交的注释、作者、时间等信息。 6. 合并代码:团队成员可以在各自的本地仓库中进行代码开发。当一个人完成了某个功能的开发时,可以通过合并代码的方式将其添加到主仓库中。在Studio中,右键点击代码编辑区选择“Git” -> “Merge”,然后选择要合并的代码修改。 7. 回滚代码:如果遇到了一些问题,可以通过回滚代码来恢复到之前的某个版本。在Studio中,右键点击代码编辑区选择“Git” -> “Revert Commit”,然后选择要回滚的提交。 以上是使用git进行版本管理的基本操作,团队成员可以根据需要进行相应的操作。git实际上还有很多高级功能,如分支管理、标签、远程仓库等,更多的内容可以在git的官方文档和其他教程中学习到。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值