Git使用规整(保姆级)

148 阅读8分钟

git是分布式版本控制工具。一般分为:本地仓库和远程仓库。目前网上提供了一些代码托管服务:GitHub、Gitee、GitLab等。

优点

适合分布式开发,速度快、灵活,离线工作;

缺点

代码保密性差;比SVN更复杂;

安装

下载

git官网下载自己系统对应版本的安装包。

image.png

安装

右键,【以管理员身份运行】,【Next】,选择自己需要安装的目录,后续的所有选择均让其默认即可,不需要修改,无脑next即可。

注:

  • 电脑名、路径名尽量不要用中文;
  • 安装步骤-选择git组件时,默认的勾选项建议不要动,并且可以考虑以下3项的处理。分别为:创建桌面快捷方式、每天检查更新、将Git Bash配置文件添加到windows。

image.png

  • 安装完成,点击Finish。(检验:右键,弹框是否包含Git命令快捷项。)

image.png

注册GitHub/GitLab账户

配置

检查

  1. 检查是否安装成功:git --version。未出现命令,则卸载重装;
  2. 检查Git是否已经添加到系统的PATH环境变量中:echo $PATH

image.png

image.png

如果没有Git安装路径的输出,则需手动将Git安装路径、Git的cmd文件路径添加到PATH环境变量中,如下:

image.png

信息配置

安装完Git,第一件事就是配置个人的【用户名】和【邮箱地址】(提交标记身份使用,非注册其它接管平台的用户名和邮箱哦,可任意配置)。相关使用:

git config:git配置命令

--global:配置参数,表示全局配置。

右键,【Git Bash Here】,输入以下命令行,配置个人信息:

git config --global user.name 用户名
git config --global user.email 邮箱地址

image.png

配置完成后,检查是否配置成功:

git config --list
#如果信息太多,可以输入 q 退出

image.png 出现以上内容,则表示注册成功。需要修改,则重复配置步骤即可。

生成SSH

SSH:加密的网络协议,使用了公钥加密算法+对称加密算法实现,主要用于远程登录、操作执行指令、传输文件等等操作,让用户通过不安全的网络连接到计算机并远程执行操作,而不必担心数据被窃取或篡改。

实现

命令行中输入生成密钥的命令:包含一个私钥和一个公钥。

  • 私钥【id_rsa】:保存在本地计算机上;
  • 公钥【id_rsa.pub】:复制到远程计算机上,用于对SSH连接进行加密。
// -t:密钥类型为RSA(非对称加密算法)
ssh-keygen -t rsa

生成过程中,会提示密钥保存路径、密钥文件名、密钥口令等信息,可接受默认值或自定义。

配置信息的时候,需要注意安装的【id_rsa】文件和【id_rsa.pub】文件路径位置哦~

image.png

查找【.ssh】文件位置,可使用命令:

~/.ssh

image.png

image.png

添加到GitHub/GitLab管理平台

  1. 头像 → Settings,找到【SSH and GPC keys】,点击【New SSH Key】添加公钥:

image.png

  1. 【title】可以自定义命名一个,将公钥【id_rsa.pub】文件中的内容招贴到key中,点击保存。

image.png

  1. 检查配置是否成功

右键 → 【Git Bush Here】,输入命令:

ssh -T git@github.com

image.png

即表示配置成功。

多平台多账户使用Git

方法一 切换用户名切换平台

1. 本地备份Github密钥

cd ~/.ssh

// 备份
mv id_rsa id_rsa_github
mv id_rsa.pub id_rsa.pub_github 

2. 设置新的用户名、邮箱地址

git config --global user.name 用户名
git config --global user.email 邮箱地址

3. 生成新的密钥

ssh-keygen -t rsa -C 'xxxx@163.com'

4. 关联新的仓库

如果之前已经关联过A仓库,需要将其徐晓关联再关联新仓库,则需要先删除关联的origin的远程库:

git remote rm origin

关联新的仓库

git remote add origin git@github.com:xxxx/mock.git

方法二 取消全局配置

  1. 清除全局配置
git config --global --unset user.name 账户名
git config --global --unset user.email 邮箱地址
  1. 清除之前默认生成的密钥
rm ~/.ssh/id_rsa.pub
rm ~/.ssh/id_rsa
  1. 切换到对应项目的路径下,配置名称和邮箱
git config user.name 账户名
git config user.email 邮箱地址
  1. 生成SSH密钥及其存放文件
// -C 邮箱 -f 密钥对的文件名:表示以密钥对文件名作为注释
ssh-keygen -t rsa -C 邮箱 -f 密钥对的文件名
  1. 让git识别新生成的密钥
ssh-add 文件名
  1. ssh配置

在【~/.ssh】路径下查看是否有config文件,若无,创建一个,然后配置config文件内容

# 第一个github项目账号
Host first_project
    HostName IPADDRESS OR DOMAIN    eg.github.com
    User first_user
    IdentityFile 密钥对的文件名1

#第二个git项目账号
Host second_project
    HostName IPADDRESS OR DOMAIN
    User second_user
    IdentityFile 密钥对的文件名2

以上步骤都完成配置后,多个git账号就可以使用了~

Git项目

本地项目推送

1. 创建本地仓库:新建【GitDemo】文件夹目录; 2. 本地仓库配置

(1)初始化:

git init

初始化完成,目录中会有一个【.git】文件夹。如果未展示,可在【查看】选项中勾选【隐藏的项目】,展示。

image.png

(2)添加项目文件

git add README.md

(3)commit

git commit -m "First commit files

(4)重命名当前分支(-M:强制执行重命名)

git branch -M master

3. 关联远程仓库:(选择SSH方式生成远程仓库链接,避免使用HTTPS生成造成后续提交需要验证用户名和密码问题。)

git remote add origin git@github.com:166231/GitDemo.git

image.png

4. 推送

git push -u origin master

error: remote origin already exists. 一般情况下是clone下来的仓库,推送到自己的仓库出现的问题。解决办法: 1、git remote rm origin,删除关联的origin的远程库; 2、git remote add origin https://gitee.com/xxxxxx.git,关联自己的仓库 3、git push origin master,推送到自己的仓库,完成~

远程仓库拉取

git clone 项目地址

Git使用

工作区、暂存区、版本库概念

  • 版本库:【.git】文件夹,存储了很多配置、日志、文件版本等信息,一般是Git自己维护的;
  • 暂存区:【index】文件,也可以叫做stage,存放临时修改文件的地方;
  • 工作区:工作目录,就是和【.git】以及同级文件构成的工作目录;

image.png image.png

Git工作区中文件的状态

  • untrackedtracked:是否跟踪(纳入版本控制);
  • UnmodifiedModified:是否修改;
  • staged:已暂存状态

本地仓库操作

  • git status: 查看文件状态
  • git add: 将文件的修改加入暂存区
  • git reset: 将暂存区的文件取消暂存或者是切换到指定版本
  • git commit: 将暂存区的文件修改提交到版本库
  • git log: 查看日志

远程仓库操作

  • git remote: 查看远程仓库,添加-v参数可以查看具体路径;
  • git remote add: 添加远程仓库
  • git clone: 从远程仓库克隆
  • git pull: 从远程仓库拉取
  • git push [remote-name] [branch-name]: 推送到远程仓库

分支操作

分支:一个HRAD的指针标记指向当前所在分支或者某个具体的提交记录。每次都会产生新的记录,masterHRAD会后移。

  • git branch: 查看分支
    • git branch -r: 列出所有远程分支
    • git branch -a: 列出所有分支(本地+远程)
  • git branch [name]: 创建分支
  • git checkout [name]: 切换分支
  • git push [shortName] [name]: 推送至远程仓库分支
  • git merge [name]: 合并分支

注意: 合并分支,有可能存在合并冲突的情况。主要是由于多人同时修改了同一个文件的同一个位置,提交冲突造成的,此时可手动合并,处理冲突部分。

解决办法

  • 添加进入暂存使用 git add *,将所有的文件都添加进暂存区,之后执行git commit -m "手动修改",将所有文件添加到本地仓库。
  • git commit -m "手动修改" xxx.txt 命令后面加一个 -i

推送成功。

image.png

image.png image.png image.png

标签操作

  • git tag:列出已有的标签;
  • git tag [name]:创建标签
  • git push [shortName][name]:将标签推送至远程仓库
  • git checkout -b [branch][name]:检出标签

Git命令综合集

  • git init:初始化
  • git add xxx:添加
    • git add index.html:将文件添加到暂存区
    • git add css:将目录添加到暂存区
    • git add .:将当前目录下的所有变化都暂存
  • git commit -m "提交的内容说明":将暂存区内容提交到版本库
  • git log:查看日志
    • git log --oneline:在一行显示简略信息
  • git status:查看仓库变化,检查未提交的所有变更的文件状态
  • git reset --hard 版本号:回退版本:
    • 需要先查看版本号哦~
    • git reflog:查看git所有操作记录,包含reset记录~
  • clear:清屏
  • ctrl+L:另起一页
  • git branch:查看远程分支
    • git branch -v:查看本地+远程分支
    • git branch 分支名:新建分支
    • git checkout 分支名:切换分支
    • git merge 目标分支名:把目标分支下的所有记录合并到当前分支下
    • git branch -d 分支名:删除分支(-D:强制删除)

image.png