一.Git概念与安装
概念:
Git是一个开源的分布式版本控制系统,是用来保存工程源代码历史状态的命令行工具。
分布式:开发者可以通过克隆手段,在本地机器上拷贝一份完整的Git仓库,在完成开发工作后,再将个人开发代码提交至Git仓库;
版本控制:即开发人员通过对代码的版本控制,从而实现对代码的有效管理。Git会记录每次提交的代码版本,在有需要时可以对版本进行回滚操作。
安装:Git下载官网:git-scm.com/downloads
根据自己的电脑系统,下载对应的安装包即可。
安装后按window+R打开输入cmd或者输入powerShell (输入命令 git --version验证)
二、Git环境配置
首先在GitHub或Gitee官网上注册一个账号,注册好后,桌面右键选择Git Bash
1.配置用户名和邮箱
因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。
git config --global user.name “XXX”
git config --global user.email “XXX”
配置的用户名和邮箱地址会被写入到 C:/Users/用户名文件夹/.gitconfig 文件中。这个文件是 Git 的全局配置文件,配置一次即可永久生效。
配置好后通过一下命令来检查是否配置成功
# 查看所有的全局配置项
git config --list --global
# 查看单个的配置项,比如查看用户名
git config user.name
2.本地关联GitHub(SSH连接配置)
首先注册好GitHub账号
2.1.生成SSH(电脑与GitHub通信的安全链接)
# 生成ssh
ssh-keygen -t rsa “XXX邮箱”
# 命令执行后,连敲3次回车键
(期间会询问你要不要输入密码,建议不输入,不然以后每次涉及相关操作都要输入密码会很麻烦)
2.2.查看生成的SSH
系统盘users目录(win: C:\Users\你的用户名.ssh\),会生成的id_rsa私钥 和id_rsa.pub 公钥文件 用文本编辑器打开id_rsa.pub,并将文件中一大串密钥复制(用于添加公钥到GitHub中)
2.3添加公钥到GitHub中
-
登录 GitHub 账号,右上角进入 Settings,然后选择左边栏的 SSH and GPG keys 进行添加操作
-
点击 Add SSH key 按钮添加一个 SSH key 。把你复制的 SSH key 代码粘贴到 key 所对应的输入框中,记得 SSH key 代码的前后不要留有空格或者回车。上面的 Title 所对应的输入框也可以输入一个该 SSH key 显示在 Github 上的一个别名
- 在 Git Bash Here 中输入以下代码,检验是否添加 SSH 成功
$ ssh -T git@github.com
-
若出现警告代码无需理会,直接输入yes回车即可。若创建SSH Key过程设置了密码,则会被提示输入密码
-
密码正确后你会看到下面代码中这段话,说明已经成功设置 SSH 密钥。如果你看到 “access denied” ,者表示拒绝访问,那么你就需要使用 HTTPS 去访问,而不是 SSH
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
至此就可以使用SSH协议进行代码的拉取和提交操作且不需要输入密码了
三.Git常用命令
Git三板斧:添加git add,提交git commit和git push
其他常用:查看文件状态git status 显示所有本地分支git branch
四.Git状态
注:可以通过git status命令查看Git仓库状态
如果有文件被修改过,用git diff可以查看修改内容。
文件未添加到Git状态:未被跟踪(Untracked files)
文件添加到Git到三种状态:已修改(modified)、已暂存(staged)、已提交(committed)
使用 Git 管理的项目,拥有三个区域,分别是工作区、暂存区、Git 仓库
未被跟踪(Untracked files):新建的Git仓库,里面文件的状态都是未被跟踪的状态。输入git add 文件名 即可让文件被跟踪。
已修改(modified):修改了文件,但还没将修改的结果放到暂存区
已暂存(staged):已暂存表示对已修改文件的当前版本做了标记,使之包含在下次提交的列表中
已提交(committed):已提交表示文件已经安全地保存在本地的 Git 仓库中
五、Git分支
注:显示所有本地分支 git branch
切换分支 git checkout 分支名称
创建并切换到新分支 - git checkout -b 新分支名称
合并分支到master分支上 **git checkout master** **git merger 分支名称**
删除本地分支 **git branch -d** 分支名称
作用:让git所有分支之间彼此互不干扰,各自完成各自的工作和内容。可以在分支使用完后合并到总分支(原分支) 上,安全、便捷、不影响其他分支工作
master 主分支:用来保存和记录整个项目已完成的功能代码。一般不允许在master分支上修改代码,人员导致整个项目崩溃,一般在功能分支调试好后合并到master分支。
功能分支:专门用来开发新功能的分支,它是临时从 master 主分支上分叉出来的,当新功能开发且测试完毕后,最终需要合并到 master 主分支上。