十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Git(学习笔记)

Git(学习笔记) 前言svn是集中式版本控制工具git是分布式版本控制工具【工作区add →暂存区commit → 本地库】push → 远程库gitee, gitlab, github【工作区 ←rm 暂存区←无法撤回本地库】无法撤回远程库【工作区 暂存区 本地库】←clone 远程库// 首次获取【工作区 暂存区 本地库】←pull 远程库// 2次以后获取1 Git下载安装1.1 客户端下载官网git-scm.com下载windows64位下载完成1.2 安装双击执行下一步设置默认编辑器Let Git decide让git使用默认主分支名(master)无需手动指定User Git from Git Bash only仅运行Git Bash 使用GitGit from the command line and also from 3rd-party software允许命令行与第三方使用GitUse bundled OpenSSH使用Git自带SSH客户端兼容强Use external OpenSSH使用环境配置SSH客户端适用于监管严格行业Use the OpenSSL library使用Git内置的SSL进行远程库HTTPS连接Use the native Windows Secure Channel library使用Windows原生通道Check out Windows-style,commit Unix-style line endings获取时将Linux换行LF自动转换为Windows的CRLF。提交时将Windows换行自动转换为Linux换行。Checkout as-is,commit Unix-style line endings提交时转换获取时不转换Checkout as-is, commit as-is提交获取都不转换Use MinTTY终端模拟器支持右键粘贴Mergepull时先快进合并远程分支到本地本地有更新则合并。Git Credential Manager使用系统原生平局管理器不使用密码访问远程库1.3 初始化本地库可选注释只有用命令行新规项目或文件时才需要目的是使Git有文件夹管理权限(1) 创建文件夹(2) 进入文件夹右键Open Git Bash here// 打开命令窗口(3) 命令git init// 初始化本地库使git有当前文件夹控制权限1.4 配置可选(1) 配置用户名git config --global user.name 用户名(2) 配置邮箱git config --global user.email 邮箱注释执行git命令后会在 c盘/用户/windows用户的文件夹下生成.gitconfig文件。可以编辑该文件修改用户名和邮箱。该设置只为区分操作者2 远程库本地查看远程库别名git remote -v本地创建远程库别名git remote add 别名 https远程库.git2.1 Github2.1.1 新建仓库GitHub 加号 new repository 输入项目名// public(公开), private(5人以内免费)2.1.2 团队管理(1) 邀请团队成员登录github, 进入库, settings, manage access, invite a collaborator, 添加成员账号, 复制pending invite(邀请函), 将邀请函发给成员成员登录github, 访问邀请函url(同意拒绝) 只有成员才可以push代码(2) 夸团队协作方式1将http.git发送给其他团队方式2其他团队github搜索【创建者/项目名】github右上fork (复制项目到自己库), 团队成员(add,commit,push,pull), 其他管理(github, pull requests, new pull request)(3) 本地管理本地管理者(pull requests), marge pull request(合并其他团队提交),confirm marge(确认合并)(4) SSH免密登录管理者(本地打开git bash here) ssh-keygen -t rsa -C github账号查看.pub(公钥)文件并复制内容登录github 用户settings, SSH and GPG keys, new ssh key, 起名, 粘贴.pub内容// 可以用ssh.get替换http.git拉去提交代码2.2 Gitee2.2.1 新建仓库Gitee加号 新建仓库 输入仓库名 选择公开私有 创建2.2.2 管理(1) 导入Github项目到Gitee加号 新建仓库 导入已有仓库不用输入名字 输入Github连接 创建// 项目更新项目名右侧强制更新将Github项目更新到Gitee2.3 Gitlab注释社区版不允许用于公开或商业用途2.3.1 下载安装系统CenterOS7需要最低2核4G(推荐8G,4G不够)内存否则无法启动服务器设施CenterOS7已经停止更新直接安装会显示错误按如下配置变更# 备份原有的配置防止操作失误无法回退 sudo mv /etc/yum.repos.d /etc/yum.repos.d.bak # 创建新的配置目录 sudo mkdir /etc/yum.repos.d # 下载阿里云提供的CentOS7源配置文件 sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo # 将源地址替换为阿里云的 Vault 归档地址CentOS7已停更普通镜像站不再更新 sudo sed -i s|http://mirror.centos.org/centos/$releasever|https://mirrors.aliyun.com/centos-vault/7.9.2009|g /etc/yum.repos.d/CentOS-Base.repo # 清理旧缓存并生成新缓存 sudo yum clean all sudo yum makecache安装依赖sudo yum install -y curl policycoreutils-python openssh-server openssh-clients postfix启动并设置开机自启 SSH 和 Postfixsudo systemctl enable sshd sudo systemctl start sshd sudo systemctl enable postfix sudo systemctl start postfix配置防火墙规则开放 HTTP 和 HTTPS 服务端口使外部能够访问 GitLab Web 界面sudo firewall-cmd --permanent --add-servicehttp sudo firewall-cmd --permanent --add-servicehttps sudo systemctl reload firewalld手动配置清华大学镜像源国内速度更快# 1 创建配置文件 sudo vim /etc/yum.repos.d/gitlab-ce.repo # 2 写入以下内容以清华源为例 [gitlab-ce] nameGitlab CE Repository baseurlhttps://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ gpgcheck0 enabled1 # 3 更新缓存 sudo yum makecache # 4 执行以下命令安装 GitLab 社区版CE文件很大卡在【Installing : gitlab-ce-17.1.1-ce.0.el7.x86_64】10分钟左右耐心等待 sudo EXTERNAL_URLhttp://服务器IP地址 yum install -y gitlab-ce2.3.2 启动(1) 执行重配置耗时较长约20分钟需耐心等待sudo gitlab-ctl reconfigure// 此过程会自动安装 Nginx、PostgreSQL、Redis等组件并初始化数据库(2) 检查状态sudo gitlab-ctl status// 所有组件状态显示为run则说明服务启动成功2.3.3 访问(1) 首次访问配置的服务器IP地址默认端口8080(2) 输入用户名密码用户名(root)密码sudo cat /etc/gitlab/initial_root_password查看// 初始密码会在24小时后删除首次访问需修改密码(3) 修改密码个人头像 Preferences Password2.3.4 新建仓库Gitlabnew project create a blank project 输入项目名 create project2.3.5 新建用户方式1登录页面注册需管理员同意同意页面如下方式2管理员创建// 17.1版本页面左上角用户图标 Administrator 右上用户标(view user in admin area) Overview Users New User注释也可直接访问URLip地址/admin/users创建用户或同意用户注册请求用户权限‌Guest访客‌仅能查看公开的项目信息无法访问代码仓库适合外部协作人员。 ‌Reporter报告者‌Guest之上还可以克隆/查看代码仓库、查看下载构建产物适合测试等非代码开发岗位 ‌Developer开发者‌拥Reporter的之上还可创建新分支、提交推送代码到非保护分支、发起合并请求是普通开发人员的默认角色。非保护分支main 或者 master 之外分支默认非保护 ‌Maintainer维护者‌拥有Developer的全部权限可管理项目设置、调整保护分支规则、管理项目成员、合并代码到受保护分支、配置CI/CD流水线是项目的核心运维管理者。 ‌Owner所有者‌拥有Maintainer的全部权限可删除项目、转移项目所有权、管理所有成员权限仅项目创建者或被提升的用户可拥有该角色。2.3.6 添加用户到项目Group Manage Members Invite members 输入用户名输入只是检索必须点一下选择 输入权限输入过期时间3 操作Git自带Git Bash3.1 linux命令注释git命令窗口可以执行部分linux命令(1) 创建文件touch 文件名(2) 编辑文件vim 文件名3.2 提交撤回(1) 添加暂存区git add文件名(2) 取消暂存区git rm--cached文件名(3) 提交本地库git commit-m提交注释文件名注释控制台显示 warning: in the working copy of test.txt, LF will be replaced by CRLF the next time Git touches it可在项目根目录添加.gitattributes文件设置window和linux文件的换行符# 将所有文本文件标准化为 LF * textauto # 对于特定的 Windows 脚本文件强制使用 CRLF *.bat text eolcrlf *.cmd text eolcrlf # 对于二进制文件禁止转换 *.png binary *.jpg binary *.pdf binary3.3 查看命令(1) 查看版本git --version//显示git版本信息(2) 查看状态git status// 显示当前分支名本地库(已添加未添加的文件名)(3) 查看已提交版本git reflog// 显示所有分支的提交的履历信息(4) 查看已提交详细信息git log// 显示所有分支提交履历信息包含提交用户提交时间等(5) 查看分支git branch -v//查看当前分支名以及最后提交信息3.4 分支(1) 创建分支git branch分支名(2) 切换分支git checkout分支名(3) 切换版本git reset--hard7位版本号// 版本号可通过 git reflog查看。例如版本1,2,3当版本切换回2之后修改文件再次提交会覆盖履历3最后只显示1,2,4(4) 合并分支到当前分支git merge分支名注释合并冲突时需要手动修改文件添加提交3.5 远程库(1) 推送本地代码到远程库git push远程库别名 本地库分支名// 没有windows凭据管理器则需弹窗登录github(2) 首次获取远程库代码git clonehttps...git// 克隆会拉代码初始化本地库自动起别名origin。克隆可直接进行不需要提前初期化本地库(3) 更新远程库代码到本地git pull远程仓库名称 远程分支名称// 不要与clone命令在同一级执行否则会将clone工程与拉去内容生成在同一级文件夹4 操作GitTortoiseGit注释只作为Windows工具使用需提前安装Git环境4.1 下载官网Download – TortoiseGit – Windows Shell Interface to Git4.2 安装双击执行下一步电脑重启后显示图标4.3 操作4.3.1 创建文件4.3.2 提交撤回(1) 添加暂存区Add(2) 取消暂存区(3) 提交本地库Commit(4) 文件修正注释撤销修正与提交 同新规一样4.3.3 查看(1) 查看状态新规添加暂存区已提交有修正(2) 查看已提交版本Show RefLog(3) 查看已提交详细信息Show log(5) 查看分支4.3.4 分支(1) 创建分支Create Branch(2) 切换分支Checkout(3) 取消提交Reset(3) 切换版本Checkout to this// 会生成新分支(4) 合并分支Merge4.3.5 远程仓库(1) 推送本地代码到远程库push先commit(2) 首次获取远程库代码clone(3) 更新远程库代码到本地pull5 操作Giteclipse先克隆远程库到本地导入eclipse项目5.1 提交代码Window Show View Other GitStaging(1) 添加暂存区(2) 提交并推送远程库5.2 获取代码(1) 拉取远程库代码(2) 切换分支5.3 查看履历Window Show View Other History5.4 忽略文件项目根目录创建[.gitignore]文件指定忽略的文件及文件/build/ /.settings/ .gitignore .classpath .project6 操作GitIDEA待完成
返回列表