IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Git - 日常使用小结 -> 正文阅读

[开发工具]Git - 日常使用小结

前言

说来惭愧,关于版本控制工具,此前虽然用过SVN和Git,但都是局限于本地管理,所以并没有远程仓的概念…

远程环境这里使用 GayHub,其他提供远程Git存储库的服务平台其实也大同小异。

本地配置

  • Git 安装
  • 配置个人信息
    # <xxx> : 表示需要替换的内容
    git config --global user.name <name>
    git config --global user.email  <email>
    # ps: 使用config指令查看所有配置
    git config --list
    
  • 配置SSH Key
    # 检查是否存在SSH Key
    cd ~/.ssh && ls
    # 如果出现了 id_rsa.pub 那么直接跳过这一步
    
    #配置SSH Key
    ssh-keygen -t rsa -C <email>
    
  • 添加SSH Key 到 GayHub
    # 打印 id_rsa.pub
    cd ~/.ssh && cat id_rsa.pub
    # GayHUb 个人头像 --> Setting --> SSH and GPG keys --> New SSH key
    
  • 测试
    ssh -T git@github.com
    

Git基础概念

在这里插入图片描述

  • 工作区间:即我们的工程项目文件。
  • 缓存区:只能通过 git GUIgit shell 窗口显示,提交代码、解决冲突的中转站。
  • 本地仓库:只能在git shell 窗口显示,连接本地代码跟远程代码的枢纽,不能联网时本地代码可先提交至该处。
  • 远程仓库:保存我们代码的服务器。

基本操作

仓库获取

  • 从远程拉取
    # GayHub 上进入项目首页,点击Code,选择SSH方式(默认),复制项目地址
    git clone <URL>
    
  • 在本地创建仓库同步到远程仓
    # 本地仓库创建
    git init
    # 添加文件到版本管理器
    git add <file>
    # 重版本控制中移除文件
    git rm <file>
    # 文件重命名
    git mv <file> <newname>
    # 查看当前状态
    git status
    
    # 创建远程仓库后复制项目地址URL
    # 关联远程仓库
    git remote add <branch> <URL>
    
    # 推送到远程仓库
    git push -u origin master
    # ps: 远程仓库空时需要加 -u
    

拉取

# 下载远程代码并合并
git pull

提交

# 提交到暂存区
git commit
# 推送到远程仓库并合并
git push

分支管理

  • 克隆指定分支
    # <branch> 是分支名 <URL> 是仓库地址
    git clone -b <branch> <URL>
    
  • 切换分支
    git check <branch>
    
  • 更新主分支流到某分支
    # 一般我选择将两个分支都 clone 下来,通过 Beyond Compare 比较后手动同步代码,再 commint, push...
    

更新子模块

# 有时候项目依赖到其他子项目,需要我们下载子项目
git submodule init
git submodule update

查看修改

# 可以查看每个commit的改动细节
git log -p
# 查看简要统计
git log --stat
# 查看指定commit的指定文件改动细节
git show <commit> <file>

# 显示暂存区和上一条提交之间的不同,即如果执行commit的结果
git diff --staged
# 显示工作区和暂存区之间的不同,即如果所有文件都add的结果
git diff
# 显示工作目录和上一条提交之间的不同,即苏鸥文件都add 再commit的结果
git diff HEAD

提交了错误的commit

  • 修改commit
    # 将存在问题的文件改好
    # 添加到暂存区
    git add <file>
    # 提交修改
    git commit --amend
    
    • 回滚
    # git reset [--soft | --mixed | --hard] [HEAD]
    # 回退所有内容到上一个版本
    git reset HEAD^
    # 回退 hello.php 文件的版本到上一个版本
    git reset HEAD^ hello.php
    # 回退到指定版本
    git  reset  052e
    
    # 补充 HEAD 说明:
    # ^
    	# - HEAD 表示当前版本
    	# - HEAD^ 上一个版本
    	# - HEAD^^ 上上个版本
    	# - ...
    # ~
    	# - HEAD~0 表示当前版本
    	# - HEAD~1 上一个版本
    	# - ...
    
  • 再次提交提交 合并commint
    # 合并最近两次提交
    git rebase -i HEAD~2
    

注意rebase 在 git 中是一个非常有魅力的命令,使用得当会极大提高自己的工作效率;相反,如果乱用,会给团队中其他人带来麻烦。

多人协同开发常见问题

  • 提交代码推荐前摇
# 人物:同事A,同事B
# 初始远程仓:版本T
# 由于所有项目组成员都可以修改远程仓库的版本,所有很容易出现一下情况:
# 问题流程: 同事A、B都clone了远程仓版本T,修改后的版本我们记录为TA、TB。假设同事A 先提交,这时远程仓的变为TA了,同事B再提交代码时可能出现两个情况:
# 1. Git自动合并 
# 2.你们修改了同一个代码段,提交冲突
# 个人习惯:提交代码前先从远程仓同步代码最后再推送至远程仓
	git pull --rebase

在线学习网站

Learn Git Branching

参考鸣谢

git图解:代码区域总结

图解git原理与日常实用指南

深入讲解

这才是真正的Git——Git内部原理揭秘!

这才是真正的 Git——分支合并

这才是真正的Git——Git实用技巧

详解 Git 大文件存储(Git LFS)

图解4种git合并分支方法

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-10-11 17:42:38  更:2021-10-11 17:44:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:23:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码