shell 纸一的运维终端 _ - Git
type: channel
link: https://type.paper1.cc/index.php/tag/Git/
items: Git使用指南

Git使用指南
type: item
date: 2021-10-06T08:34:00+00:00
description: Git使用指南一、基本概念git本地分为3个区域：1.工作区 2.暂存区 3.本地库二、使用前配置2.1 设置签名使用用户名、邮箱地址区分不同开发人员的身份。这里的用户和邮箱与远程库的账号密码是无关的。git config user.name tom git config user.email tom@gmail.com #设置项目级别签名 #保存位置在项目目录.git/config文件 git config --global user.name tom git config --global user.email tom@gmail.com #设置系统用户级别签名 #保存位置在windows用户家目录.gitconfig文件项目级别、仓库级别：仅在当前本地库范围内有效。系统用户级别：登录当前操作系统的用户范围。级别优先级项目级别优先于系统用户级别。只有系统，以系统用户级别签名。必须有一个2.2初始化工作空间在工作目录内打开git bash,使用git init命令初始化。git init #在当前目录初始化为工作目录初始化完成后，目录下会自动创建.git目录。2.3添加远程库git可以完全单机使用，也可以添加远程库使用。git remote add [远程库别名] [远程库地址] #添加远程库 #远程库可使用http或ssh地址。从远程库复制地址。 git remote remove [远程库别名] #删除远程库 git remote -v #查看已添加的远程库信息2.4使用SSH登录远程库使用http登录远程库，在push时会出现登录界面，使用远程库的账号密码进项验证。也可以使用ssh证书登录。ssh-keygen -t rsa -C [邮箱地址] #生成ssh证书 #证书保存在用户家目录的.ssh目录下 #证书文件为id_rsa(私钥)和id_rsa.pub(公钥)使用文本编辑器打开id_rsa.pub，将公钥内容复制，在远程库的ssh证书中进项添加。三、使用git进项版本控制3.1工作流程git add [文件名] #将代码文件从工作区添加到暂存区 git commit -m [备注] [文件名] #将文件从暂存区提交到本地库 #-m 表示修改备注 git status #查看git状态 git log #查看历史版本记录(详细) git reflog #查看历史版本记录(简明)3.2历史版本切换git reflog #查看历史版本 git reset --hard 9aebe0 #切换到指定的历史版本 #reset三个参数对比 #--soft 移动本地库指针 #--mixed 移动本地库指针、重置暂存区 #--hard 移动本地库指针、重置暂存区、重置工作区3.3分支在本地库中建立分支和代码合并。git branch -v #查看当前所有的分支 git branch hot_fix #创建一个名称为hot_fix的新分支 git checkout hot_fix #切换到hot_fix分支 //合并分支 git add apple.txt #将工作区代码提交到暂存区 git commit apple.txt #将暂存区代码提交到本地库 git checkout master #切换到主干 git merge hot_fix #合并hot_fix分支到master中 //合并分支冲突 #合并时如有冲突，则会提示失败 #vim编辑器编辑冲突的代码。 #代码中会标识出冲突的部分，需要手动编辑好之后在提交。 #冲突的文件会带有(hot_fix|MERGING)标记 git commit -m "注释内容" #手动修改后执行命令 #(hot_fix|MERGING)标记就会消失3.4 比较文件差异git diff [文件名] #将工作区和暂存区中的文件进项比较 git diff head abc.txt #将工作区和本地库中的文件比较 git diff head #不指定文件名四、远程库操作4.1 克隆git clone [远程库地址] #将远程库克隆到本地在将远程库克隆到本地的同时，git会完成三项操作：完整地把远程库下载到本地创建origin远程地址别名初始化本地库4.2 抓取、拉取、推送抓取fit fetch origin master #抓取远程库，下载到本地，但是不修改工作区内容。拉取pull = fetch + merge git fetch origin master #抓取远程库 git merge origin master #合并远程库 git pull origin master #拉取远程库 #从远程库合并到本地库，可能会存在冲突，人工处理完冲突后，再执行git commit -m [备注]推送git …